home *** CD-ROM | disk | FTP | other *** search
/ Archive Magazine CD 1995 / Archive Magazine CD 1995.iso / text / hints / all_hints next >
Encoding:
Text File  |  1995-08-02  |  1.5 MB  |  38,577 lines

Text Truncated. Only the first 1MB is shown below. Download the file for the complete contents.
  1. Hints and Tips
  2. 1.1
  3. Using Electrohome Monitors
  4. 1.1
  5. Ian Nicholls of Kidderminster says that the “Electrohome” colour
  6. monitor, as sold by Opus, works OK on the Archimedes. All you have to do
  7. is make up the appropriate connector. (Or purchase one from CJE Micros
  8. or somesuch.) The pin connections for the Archimedes are given on the
  9. inside back cover.
  10. 1.1
  11. Using Modes 18 - 20
  12. 1.1
  13. Whilst on the subject of monitors, let me clear up the confusion there
  14. seems to be in the computer press about the high resolution modes and
  15. the extra video hardware which the 400 series machines are said to have.
  16. This extra hardware is NOT for driving modes 18 - 20. Even on the 300
  17. series, there is all the hardware needed to run these modes on a multi-
  18. sync monitor.
  19. 1.1
  20. The extra hardware in the 400 series is actually for even higher
  21. resolution graphics − it will go up to 1280 by 976 pixels in monochrome
  22. (160 characters by 122 lines of text) and, as with modes 18 - 20, it
  23. requires a special monitor. There is no industry standard for such
  24. monitors, and Acorn are still looking into providing a suitable monitor
  25. with their own badge on it. This extra high resolution is of course
  26. aimed at the CAD (computer aided design) market, and it is said that
  27. AutoCAD is being translated onto the Archimedes.
  28. 1.1
  29. Using a Multi-sync Monitor
  30. 1.1
  31. If you have a multi-sync monitor and want to get it working on the 300
  32. series, all you need to do is to switch the computer on whilst holding
  33. down the <R> key. This resets the CMOS RAM settings (so if, like me, you
  34. had changed them, you will have to re-configure again!) and it changes
  35. the configuration of the RGB output to run in multi-sync mode. It then
  36. allows you to access the extra screen modes that had been previously
  37. forbidden to those of us who only have standard monitors. If you should
  38. want to change the machine back again to run a standard monitor, you
  39. have to do another <R-power-up> which switches it back again (and re-
  40. sets the CMOS RAM settings AGAIN!). In other words each time you do an
  41. <R-power-up> it toggles between the two monitor settings.
  42. 1.1
  43. Using View
  44. 1.1
  45. Gerald Jones of Northampton tells us that only those of you who have
  46. gone from a Master Compact to an Archimedes will be able to get View
  47. going − for the time being, at least, because the ROM versions of VIEW
  48. will not work under the emulator. If you do have a disc version of View,
  49. Acorn tell us that the way to get it going is to copy 65ARTHUR from the
  50. MODULES directory on the Archimedes Welcome disc onto another disc and
  51. VIEW from the Compact Welcome disc and then use *BUILD !BOOT  to create
  52. a boot file which consists of:
  53. 1.1
  54.    *65ARTHUR
  55. 1.1
  56.    *GO F800
  57. 1.1
  58.    *LOAD VIEW 8000
  59. 1.1
  60.    *GO 8000
  61. 1.1
  62. and then remember to type *OPT 4,3 to set it up so that it will execute
  63. the boot file on <shift-break>. All you have to do then is to chop up
  64. your VIEW keystrip and stick it together in the Archimedes keyboard
  65. format remembering that the f0 key functions are now on the <print> key!
  66. 1.1
  67. Attaching a 5.25“ drive
  68. 1.1
  69. Have you tried to get a 5.25“ disc drive linked up to the Archimedes?
  70. Presumably, you did the obvious thing and removed the cable from the
  71. p.c.b. to the 3.5” drive and plugged in the cable from the 5.25“ drive.
  72. And you too found that it didn’t work! Well, the official answer is that
  73. it is possible to connect a 5.25” drive but that there are “different
  74. connections”. Actually, it seems that the only difference is that they
  75. have put the connector in the opposite way round!
  76. 1.1
  77. Unfortunately, you can’t just turn the connector round because of the
  78. location lug on the side of it. The solution is either to file the notch
  79. off the side of the connector so that it will go in either way round, or
  80. buy a new 34-way insulation displacement connector which you can crimp
  81. onto the end of your disc cable, the opposite way round from the
  82. existing one, or buy a disc extension cable from a supplier such as CJE
  83. Micros (£15 + £1 p&p − address in Fact-File at the back of the
  84. magazine). The advantage of doing it that way is that the extension
  85. cable is long enough to stick out at the back of the computer through
  86. the podule connection slot so that you can connect and disconnect the
  87. extra drive without taking the lid on and off.
  88. 1.1
  89. You can, if you want, put a single 5.25“ drive as drive 1 or a pair of
  90. drives as drives 1 and 2. The extra drives must, of course, have their
  91. own power supply units and you need to type *CONFIGURE FLOPPIES 2 (or 3)
  92. so that the ADFS knows how many drives there are. You will also need to
  93. get inside the 5.25” drives in order to change the link settings to
  94. configure them as drives 1 (and 2) and you should also, theoretically,
  95. remove the terminating resistors − usually a set of resistors (dual-in-
  96. line or single-in-line)  near the drive-select setting links. This is
  97. because there are already terminating resistors in the internal 3.5“
  98. drive and you should not have two sets. If you have a dual drive where
  99. they are on top of one another rather than side by side, you may find it
  100. difficult to get at the second drive in order to change the link
  101. selection. If so, the easiest solution is to make the top drive 2 and
  102. just remember that the lower drive is drive 1.
  103. 1.1
  104. One problem you may still find (which Acorn haven’t yet managed to
  105. explain) is that if you switch on the power to the disc drive before or
  106. at the same time as  the computer, the computer seems unable to start up
  107. − you just get a blank screen. All you have to do though is to make sure
  108. you switch the computer on first and then the disc drive. You will also
  109. find that the desk-top program does not recognise the third drive − even
  110. if you have typed *CONFIGURE FLOPPIES 3, it only displays two disc icons
  111. on the screen. (If anyone works out how to modify the program to
  112. recognise all three, let me know.)
  113. 1.1
  114. ADFS bugs
  115. 1.1
  116. There are one or two bugs in the ADFS, though they are apparently
  117. reasonably obscure. The only one I have found myself is that if you try
  118. to *BUILD a !BOOT file onto a disc that already has a !BOOT file and you
  119. have left the disc write-protected, when you press <escape>, the system
  120. hangs up and you have to press <ctrl-break> or reset to escape. Some of
  121. the bugs have been corrected on the 0.03 version of the ADFS that you
  122. will find in the MODULES directory on your Welcome disc. This version
  123. will have to be *RMLOAD’ed, then to check that you have got the right
  124. version installed, type *HELP MODULES which gives you the current
  125. version numbers of all modules. It should say ADFS 0.03 (17 Jun 1987)
  126. instead of ADFS 0.02 (05 Jun 1987). Incidentally, the file name on the
  127. Welcome disc is Adfs0-03, not Adfs0_03 as you might tend to expect, so
  128. if you get a file not found error, check that you have typed it
  129. correctly.
  130. 1.1
  131. Have you discoveredÉ?
  132. 1.1
  133. I’d like this to be a regular feature. It consists of the sort of things
  134. that may be obvious to some people, but perhaps that you’ve noticed from
  135. reading the User Guide (or the Programmers’ Reference Manual when it
  136. becomes available). If you find something that you thought, “Well, I
  137. didn’t realise that!’, let us know. I’ll start it off this month with
  138. things that were new to me.
  139. 1.1
  140. •   The pad character “|” which is the shifted back-slash character (the
  141. key just above the return key) can be used to “pad” out those incredibly
  142. long VDU codes that end with lots of zeros. For example, to switch off
  143. the cursor, you can use VDU23,1,0,0,0,0,0,0,0,0,0 which can admittedly
  144. be shortened to VDU23,1,0;0;0;0; can now be reduced to VDU23,1| which
  145. has the extra advantage that you don’t have to try to remember exactly
  146. how many zeros it needs to complete the command.
  147. 1.1
  148. •   Instead of saying value=value+extra, you can use the new operator
  149. “+=” and say value+=extra which is a significant saving if, like me, you
  150. tend to use long variable names; likewise with −=extra.  (Well with
  151. “604412 bytes remaining”, it may not be worth worrying about memory
  152. space, but it does save on printer ribbons!)
  153. 1.1
  154. • DANGER! • BEWARE! • WARNING!!!!!
  155. 1.1
  156. Newcomers to ADFS beware! If you have been using *WIPE * and looking
  157. through and saying “yes” or “no” to each, Don’t try it on ADFS! You will
  158. find that *WIPE * deletes ALL the un-locked files in the current
  159. directory. It’s like *DESTROY * but without even displaying a list of
  160. all the files it was about to delete and asking for confirmation. I
  161. discovered this ‘nasty’ the hard way − I lost about 10 programs at a
  162. stroke.It wasn’t too bad though as I had copied them across from DFS and
  163. only modified one or two.
  164. 1.1
  165. What you should say is *WIPE * C where the C stands for “Confirm” − then
  166. it asks you about each file in turn. − You have been warned!!!!
  167.  
  168. Hints and Tips
  169. RGB Connector
  170. Hugh Nolan, of Old Roan, Liverpool, writes, “The pinout for the RGB
  171. connector on page 18 of Archive 1.1 indicates that it follows that of an
  172. IBM PGA rather than the more common EGA standard. If anybody has a
  173. monitor supplied with a lead for use with an EGA and wishes to build a
  174. new cable they should note that the EGA pinouts are as follows:
  175. 1.2
  176. 1.2
  177.    1   Ground   6   Secondary Green/Intensity
  178. 1.2
  179.    2   Secondary Red
  180. 1.2
  181.    3   Red   7 Secondary Blue/Mono
  182. 1.2
  183.    4   Green   8   Horizontal Retrace
  184. 1.2
  185.    5   Blue   9   Vertical Retrace
  186. 1.2
  187. I am currently using such a monitor with my BBC model B and the
  188. connections are fairly straightforward except that the BBC’s connector
  189. does not have separate vertical and horizontal syncs, so I have wired
  190. the composite sync to pin 9 (Vertical Retrace) of the monitor.”
  191. 1.2
  192. Using a multi-sync monitor
  193. 1.2
  194. A much easier way to change to a multi-sync monitor is to use:
  195. 1.2
  196. *CONFIGURE MONITORTYPE 1 and
  197. 1.2
  198. *CONFIGURE MONITORTYPE 0  to switch back to the normal monitor.
  199. 1.2
  200. Epson screen-dumps
  201. 1.2
  202. No doubt you have discovered the modules called HardCopyFX, MX and RX,
  203. and you too have discovered that they don’t work! Gerrald Fitton has the
  204. answer for us. His bug-fix has been passed on to Acorn who are also
  205. circulating it. The recipe is as follows:
  206. 1.2
  207. *LOAD Modules.HardCopyFX 10000  (that’s four noughts - beware of using
  208. three!)
  209. 1.2
  210. !&104E0=&E59C1020
  211. 1.2
  212. !&104E4=&E20100FF
  213. 1.2
  214. (now replace the disc for the one onto which you want to put the hard-
  215. copy module)
  216. 1.2
  217. *SAVE HardCopyFX 10000 + 700
  218. 1.2
  219. *SETTYPE HardCopyFX &FFA
  220. 1.2
  221. *STAMP HardCopyFX
  222. 1.2
  223. To use the module, *RMLOAD HardCopyFX (or just *HardCopyFX will do) and
  224. then call it with *HardCopyFX plus various parameters − *HELP HardCopyFX
  225. will show you what all the parameters are. Has anyone been  experiment
  226. ing with it? What do all the parameters mean and what are their ranges?
  227. (Landscape, XScale, YScale, Margin and Threshold)
  228. 1.2
  229. Avoiding constant use of *MOUNT
  230. 1.2
  231. If you, like me, have a number of different discs and you can’t remember
  232. what is on which, you will probably be fed up of having to type *MOUNT
  233. each time you change the disc before you can get a catalogue. Try
  234. *CONFIGURE NODIR and <ctrl-break> and you will find that as long as you
  235. haven’t gone down to lower directories, you can just change the disc and
  236. do a *CAT (or *. works as on the BBC micro) and it will re-catalogue the
  237. disc in the drive. For more details, see James Lynn’s article about
  238. *CONFIGURE.
  239. 1.2
  240. File copying problems
  241. 1.2
  242. There are one or two problems with the *COPY command under the 0.2 and
  243. 0.3 operating systems but, not being used to using ADFS myself, I am
  244. never sure when it is a bug and when it is me being stupid. One thing
  245. you will find though is that when doing a *COPY from disc to disc using
  246. a single drive, it seems to hang up when it should be saying “Enter
  247. source disc and press the space bar” but don’t panic, it’s probably
  248. still OK and it’s just that the prompt has not been printed. Replace the
  249. disc you were expecting to put in next and press <space> and I think you
  250. will find that it carries on OK. If you haven’t discovered how to do
  251. disc to disc copying on one drive, see the “Have you discovered”
  252. section.
  253. 1.2
  254. File transfer problems
  255. 1.2
  256. If you are still having problems getting files across from other
  257. computers to the Archimedes, we have received one or two programs from
  258. subscribers. There is not enough space to print them in this issue, but
  259. if you drop us a line, we could send you a listing.
  260. 1.2
  261. Attaching a 5.25“ disc drive
  262. 1.2
  263. Acorn have told us that they would not recommend us to do this as the
  264. disc drive hardware in the computer is only designed to drive 3.5“
  265. drives with low control line loading and that if you want to attach a
  266. 5.25” drive, you should have suitable buffer circuitry added. The
  267. feedback we are getting for subscribers is that most of you are having
  268. success with this, though one person said that one drive he attached
  269. would not work whilst another one did and another person actually blew
  270. up the driver chip in the Archimedes. So, it’s up to you, but in the
  271. light of these comments from Acorn, it would clearly be a good idea to
  272. remove the pull-up resistors on the auxilliary drive.
  273. 1.2
  274. (For an alternative, check the “Hardware Available” section to see what
  275. Brainsoft have done to get round the problem.)
  276. 1.2
  277. Three floppies on the desktop
  278. 1.2
  279. In order to get three floppies on the desktop, i.e. assuming you have
  280. added a double 5.25“ disc drive, Gerrald Fitton again comes to our
  281. rescue. “In the BASIC library program called
  282. $.desktop.accessory.filehandlr you will find that lines 130 and 140
  283. accept the first and second floppies, so you will need an extra line:
  284. 1.2
  285. 145 IF floppies%>2 THEN PROCsys _addtoiconbar_left(“floppy2”,É
  286. 1.2
  287. etc as per lines 130 and 140 and you will have to make a further copy of
  288. lines 290 to 420 (which refer to floppy 0) emulating the changes made to
  289. generate lines 430 to 560 which refer to floppy 1 by inserting “2” in
  290. the appropriate places.
  291. 1.2
  292. Fortran 77
  293. 1.2
  294. Tom Fortescue warns potential purchasers of Fortran77 that (a) it needs
  295. at least 1Mbyte and is therefore unusable on the A305 (I haven’t been
  296. able to check this with Acornsoft.) and (b) it does not come with an
  297. editor, so unless you’ve got View or Wordwise or Inter-Word or somesuch,
  298. you won’t get very far with it!
  299. 1.2
  300. Stereo speakers
  301. 1.2
  302. Enoch Mayer says that he has bought, for around £25, a couple of
  303. “Realisitic” (Tandy) amplified speakers designed for use with personal
  304. stereo radio/tape players. (Model: Minimus-0.6 amplified speaker system
  305. Cat N¼ 40-1259E) Although they run off two sets of four size-C bat
  306. teries, they can easily be adapted to run off small battery eliminators.
  307. They tone in nicely with the Archimedes, but the best thing is that when
  308. no sound signal is received they automatically shut off, thus eliminat
  309. ing the “fuzz”!
  310.  
  311. •   RAM upgrades − If you want to up-grade the ram yourself, rather than
  312. trying to remove the main p.c.b. to get at the sockets where the new
  313. chips are to go, you can remove the front fascia. To do this, remove the
  314. lid, then disconnect the wires that go to the speaker and the ‘power on’
  315. LED by pulling the four-pin socket off the pins on the board. The tongue
  316. at the front of this socket is a clip that holds the socket in place, so
  317. ease this forwards and the socket should slip off easily.  Then you can
  318. remove the fascia itself by undoing the five screws, three underneath
  319. and one at each side. Care should be taken with the eject button on the
  320. disc drive as this can break off fairly easily if roughly handled. (Some
  321. say, will inevitably break off, but a bit of super-glue or the like is
  322. all you need to stick it back in place.) You will then have to remove
  323. the bridge that supports the disc drive(s). This can be done by removing
  324. one screw underneath the computer (do this first) then two screws at the
  325. side. Plug in the chips and reverse the process, again being careful of
  326. the disc eject button.
  327. 1.3
  328. •   Fitting a second drive is supposed to be a ‘dealer only’ upgrade,
  329. but as long as you know a bit about electronics and vaguely what happens
  330. inside computers, it is not too difficult to fit it yourself. However,
  331. you should watch out that the front fascia plate is not too high. If it
  332. is, it will bear on the disc and may cause an error when you try to
  333. access the disc. I discovered this when I found that the drives worked
  334. OK until I put the new two-hole fascia in place. My solution, when this
  335. happened, was “brute force and ignorance”! The metal bracket on which
  336. the drive is supported has a little bit of “give” in it − enough to
  337. raise the front of the drive by the couple of millimetres necessary to
  338. lift it away from the fascia.
  339. 1.3
  340. The other important thing to know is that to configure your second drive
  341. as drive 1 you need to move the tiny black slider switch at the side of
  342. the drive. It is a four position switch and usually comes in position 0,
  343. so one click will move it to position 1.
  344. 1.3
  345. •   Anti-Buzz Fix  − There are, apparently, two different buzzes. One is
  346. what occurs after you have pressed <escape> or <break> and the other a
  347. much more annoying buzz which not all computers seem to have. The first
  348. buzz is a software problem which is fixed in the 1.2 Arthur, so I am
  349. told, but the other requires a hardware fix which is supposed to be done
  350. by dealers as a free modification, but if you are deft with a soldering
  351. iron and are willing to risk your warranty, here’s what to doÉ
  352. 1.3
  353. The solution, according to Acorn’s technical services department isÉ
  354. 1.3
  355. “Solder a 100µF, 10 volt electrolytic capacitor across pins 7 (positive)
  356. and 4 (negative) of IC68. The capacitor should be kept as close to the
  357. p.c.b. as possible and should be secured to the board with glue or hot
  358. wax.”
  359. 1.3
  360. The bad news is that IC 68 is underneath the bar that supports the disc
  361. drive(s)! The easiest way to get at it is actually, (1) take off the
  362. lid, (2) unplug the lead that  goes to the speaker and power-on LED
  363. (beware, the socket on the ends of the cable has a lip that locks it
  364. onto the pins on the board − ease the lip forward before trying to pull
  365. the socket off), (3) take off the front fascia (one screw at each side
  366. and three under the front edge) and (4) unscrew the drive-support bridge
  367. (one screw underneath and two at the side).
  368. 1.3
  369. •   Problems with monitors − Some folk are having problems with certain
  370. monitors. If the problem is lack of contrast, use an oscilloscope to
  371. check the voltage output levels from the Archimedes. If they are less
  372. than 0.7 volts peak-to-peak you may need to change the values of the
  373. output resistors. Acorn have changed resistors R20, R41 and R59 from 68
  374. ohms to 43 ohms, so if you want to increase the output voltage, you
  375. could either change the resistors or solder a 120 ohm resistor in
  376. parallel with each.
  377. 1.3
  378. The other problem with some monitors, especially the NEC and Fujitsu
  379. multisync monitors, is of getting a greenish tinge on white areas. This
  380. comes about because Acorn put the sync signal onto the green line which
  381. is apparently what certain monitors expect. To remove this sync signal,
  382. simply remove resistor R39 − a quick snip with a good pair of side-
  383. cutters should do it, but make sure you get the right resistor!
  384. 1.3
  385. (When I tried to do these modifications, I found it wasn’t too easy to
  386. decide which resistor was which because the numbers are actually
  387. underneath the resistors. If you look at the line of resistors coming
  388. away from the video output socket you will see that they are: R1, R3,
  389. R18, R20 (68R), R35, R37, R39 (1k2), R41 (68R), R45, R50, R52, R59
  390. (68R), R60, R63 and R67.)
  391. 1.3
  392. •   Archimedes on Econet − As far as we can gather, the Econet hardware
  393. to be added to the basic 305 or 310 is just the same as the module which
  394. you would purchase for the Master or Compact − certainly, the part
  395. supplied by Acorn to one of our readers had the same part number as the
  396. Master equivalent. One problem which Econet users may find on earlier
  397. systems is that even if you only want to use the disc system, you still
  398. have to have a clock signal available, otherwise the computer hangs up!
  399. Presumably this will be corrected in the 1.2 operating system! If you
  400. are used to using !BOOT files on the network, you will need to change
  401. them all to !ARMBOOT as well as having !BOOT files for the BBC. The
  402. Archimedes will work quite well on a Level 3 server but there are no net
  403. utilities like VIEW, REMOTE, NOTIFY, ROFF etc. The only one provided is
  404. an enhanced FREE which includes RDFREE with it. Acorn have “no plans”
  405. for providing these utilities. This, for schools, is quite a problem as
  406. you cannot get to see what is going on around the net. However, software
  407. transfer around the net is very easy. (These comments were kindly
  408. provided by Mr V Smith of King Edwards School, Lytham.)
  409. 1.3
  410. •   Control key abbreviations − Lazy typists like me will like to know
  411. that if you want to type, say, MODE12 perhaps to list a program that was
  412. running in different screen mode or within a window, you can be
  413. abbreviate it to <ctrl-V><ctrl-L>. What you are doing is the equivalent
  414. of VDU22,12. On the BBC micro this was not a good idea because BASIC was
  415. unaware of the change of mode and would start to over-write screen
  416. memory with variables, but it is OK on the Archimedes because the screen
  417. memory is protected by having configured a certain amount of screen RAM.
  418. If you try it and then type PRINT MODE, it knows it is in mode 12. Other
  419. mode numbers can be worked out − mode 0 would be <cvtrl-V><ctrl-@>, 1 is
  420. A, 2-B, 3-C, 4-D, 5-E, 6-F, 7-G, 8-H, 9-I, 10-J, 11-K, 12-L, 13-M, 14-N,
  421. 15-O, 16-P, 17-Q, 18-R, 19-S, 20-T, 21-U.
  422. 1.3
  423. This can be extended to things like changing background colour, say to
  424. blue, with <ctrl-S><ctrl-@><ctrl-D><ctrl-@><ctrl-@><ctrl-@> (where
  425. <ctrl-@> is actually done with <ctrl-shift-2>) but there comes a limit
  426. where it is quicker to type in the command rather than remembering the
  427. control codes. You can even do all the plotting functions in this way −
  428. try, for example, <ctrl-Y><e><ctrl-C><ctrl-C><ctrl-C><ctrl-C>. (That’s a
  429. lower case “e”, not <ctrl-e> so switch caps lock off and just press <e>.
  430. If nothing happens, do a mode change first to a graphics mode, say MODE
  431. 12, then try it.)
  432. 1.3
  433. To change mode when in the Arthur Supervisor, you could use, say, ECHO
  434. || V || L or ECHO || S || @ || D || @ || @ || @ or you could use ECHO
  435. <19><0><4><0><0><0> but you can again just type in the <ctrl> sequences
  436. as mentioned above.
  437. 1.3
  438. •   Special effects in View − You can use *ECHO or use the control key
  439. sequences mentioned above when you are using View. Also, if you want to
  440. put the ‘format block’, ‘move block’ and ‘delete block’ commands onto
  441. function keys 10 to 12 (instead of using the <print> key) you can use:
  442. 1.3
  443. *KEY 10 || ! || L
  444. 1.3
  445. *KEY 11 || ! || \
  446. 1.3
  447. *KEY 12 || ! ,
  448. 1.3
  449. Despite what it says in the User Guide about the pageup and pagedown
  450. keys not being used, they seem to work in View and they do actually move
  451. you a page at a time up and down.
  452. 1.3
  453. •   *RMtidy − Beware that on the 0.20 Arthur, this can cause the machine
  454. to crash whenm you subsequently try to us *RMLOAD.
  455. 1.3
  456. •   There is apparently another undocumented screen mode which will be
  457. available on Arthur 1.2 − mode 21 which is 640 x 512 in 256 colours,
  458. though it will obviously only be usable on a multi-sync monitor and uses
  459. 320k of RAM! Also, on the 400 series there will be two extra high
  460. resolution monochrome modes for 64kHz monitors − mode 22 which is 160 x
  461. 122 text with 1280 x 976 graphics and mode 23 which is text only at 144
  462. x 54. These use the extra hardware that is on the 400 series boards
  463. though it looks as if there should be space for the chips on the 300
  464. boards if you are prepared to risk fitting them yourself. There are no
  465. sockets, so you would have to solder-suck all the holes first, and it’s
  466. a multi-layer board.
  467. 1.3
  468. •   Delete on keypad − If you compare the keypads of the Master and the
  469. Archimedes, you will see that where the Archimedes has a fullstop, the
  470. Master has a delete key. If you think it would be useful to have the
  471. delete function on the keypad, turn the num lock LED off and try
  472. pressing the fullstop key!
  473. 1.3
  474. •   Function key definitions − If you want to know what the current key
  475. definitions are, *SHOW K* will print them on the screen. The only slight
  476. confusion is that they appear in alphabetic order − KEY$0, KEY$1, 
  477. KEY$10,  KEY$11,  KEY$12,  KEY$13, KEY$14, KEY$15,  KEY$2,  KEY$3 etc!
  478. 1.3
  479. Function key 0, as you probably know by now, is put onto the PRINT key,
  480. but where are the other function keys − 13, 14 and 15? The only one I
  481. have found is 13 which is on the INSERT key The other thing to watch is
  482. that although there is a separate key for function key 10 (the break key
  483. on the BBC micro), when you press <break>, KEY$10 is expanded as it was
  484. on the BBC micro! (That was on 0.2. Has it changed in later versions of
  485. the OS?)
  486. 1.3
  487. •   Diary & notepad − The diary and notepad can be saved onto disc by
  488. putting the pointer on the pad or the calendar and clicking the middle
  489. button. It then asks for confirmation that you want to save it. The
  490. notepad is saved as “notepad” and the diary as “Diary87” (or whatever
  491. year it is for). To load them back in again later, you have to open up
  492. the disc and click on the required file before clicking on the diary or
  493. notepad with the middle button and selecting LOAD. When saving, the name
  494. is fixed by the desktop program, but once it has been saved, you can
  495. rename the file if you want to save more than one, though obviously this
  496. applies more to the note-pad as I know that some of you are still having
  497. to use the notepad as a word-processor! Having said all that, I have to
  498. admit that when I was trying this out, I had problems saving the
  499. calendar − I kept getting “Disc full” or “Disc in need of compaction”
  500. errors. Any offers of explanation?
  501. 1.3
  502. •   The SYSTEMDEVS module is a set of logical device drivers that can be
  503. used from Arthur. They make the device appear to the programmer as if
  504. they were a file system. In Arthur 0.20 you have to load the module from
  505. the Welcome disc, but in 0.30 onwards it should be in ROM. They include
  506. LPT:, KEYBD:, PRINTER:, VDU and RAWVDU: so a simple command to copy a
  507. file to screen would be *COPY FILE VDU: and any non-printing characters
  508. appear in the format used to program the function keys, i.e. using pad
  509. characters so that, for example, ASCII 12 comes out as || L.
  510. 1.3
  511. What is the point of these facilities? Well, you can use them to
  512. redirect the flow of data into or out of a program or relating to an
  513. Arthur command. Thus you can say *EX {>info } which sends the output
  514. from the EX command to a file called “info” and *CAT {>>info } will then
  515. ADD the catalogue information onto the end of the info file, or *CAT
  516. {printer: } would print out the catalogue. *BASIC {<data } PROG would
  517. run the BASIC program PROG and take it input information from the DATA
  518. file rather than from the keyboard. Another possible application is for
  519. debugging a program that is sending data to a disc file. Rather than
  520. stopping the program and examining the disc file periodically, you could
  521. change the line in the program where you set up the file for output and
  522. use instead X% = OPENOUT “PRINT:” then subsequent PRINT#X%’s or
  523. BPUT#X%’s would go to the printer. If the output is un-printable (or do
  524. I mean non-printing?!) characters then you could set the printer into a
  525. hex dump format which many dot matrix printers have these days. Then a
  526. final suggestion for an application would be when using network and
  527. ADFS. To avoid switching between the two, you could say X%=OPENOUT
  528. “ADFS:$.TEST”. This means that you could presumably have files open on
  529. both the network and the disk at the same time, but not having a network
  530. for my solitary Archimedes, I cannot check this!
  531. 1.3
  532. (These comments were derived from an article in “Eureka” the Auckland
  533. BBC User Groups’ Archimedes Newsletter. Many thanks to the editor, Tony
  534. Krzyzewski. Write to him if you want more details of Eureka c/o Barsons
  535. Computers, P O Box 26287, Epsom, Auckland, New Zealand.)
  536. 1.3
  537. •   ROMs that work under the emulator.
  538. 1.3
  539. Acornsoft’s Comal, Prolog and Lisp seem at first look to be OK, and one
  540. reader comments that Logotron’s Logo is OK but that the graphics are
  541. “funny” − whatever that means.
  542. 1.3
  543. Damon Hoggett reckons that to get the View series ROM’s to work, you
  544. need to *LOAD them at &10000 and then poke the following addresses to
  545. &EA (a NOP instruction) as explained last month. View B3.0: &128A2,
  546. ViewSheet B1.0: &10690, 691 and 692 and ViewStore 1.0: &12BCE, BCF and
  547. BD0 then you *SAVE filename 10000+4000 8000 8000. We made a mistake with
  548. the mention last month of Viewstore 1.1 (page 23). The poke should be
  549. ?&12BE2=&EA, not 1ABE2 and you should also poke the next two bytes,
  550. &12BE3 and E4.
  551. 1.3
  552. BBCSoft’s Monitor ROM seems to work OK with the emulator. You can
  553. apparently assemble, disassemble and single-step through 6502 machine
  554. code without problems.
  555. 1.3
  556. Some folk are saying the Inter-Chart works under the emulator, though
  557. not option 9 to import data.
  558. 1.3
  559. •   BASIC editor on 0.20 OS − If you are in BASIC and you type EDIT,
  560. BASIC issues a *ARMBE command, so if that module is not already loaded
  561. into memory, it will look in the operating system ROM and then in the
  562. current directory on the current drive for the ARMBE module. If it is
  563. not there, it will come up with “Bad command”. However, if it finds it,
  564. it will load it into memory. Then to enter the editor, you just type
  565. EDIT again. So, until you get your 1.2 OS(!) it is a good idea to copy
  566. the ARMBE module into the directory in which you keep your BASIC
  567. programs so that it is ready to use at any time.
  568. 1.3
  569. •   No room in RMA − If you are in BASIC and try to *RMLOAD a module,
  570. you may get “No room in RMA” even if the configuration is set to allow
  571. enough space for that particular module. But if you QUIT first into the
  572. Arthur supervisor you can do the RMLOAD and then go back into BASIC and
  573. OLD to get your program back. However, I think I would tend to save the
  574. program first just in case!
  575. 1.3
  576. •   BASIC V tips from Colin Dean, author of ‘Advanced BASIC’ (Tubelink’s
  577. BASIC V look-alike for the BBC & Master)
  578. 1.3
  579. In the LIST IF command, if you put a space between the IF and the
  580. <string> that follows it, you get a different effect. For example if you
  581. have two lines:
  582. 1.3
  583. 10RECTANGLE 1,2,3,4
  584. 1.3
  585. 20 RECTANGLE 5,6,7,8
  586. 1.3
  587. Then “LIST IF RECTANGLE” shows line 20 only, whereas “LIST IFRECTANGLE”
  588. shows both.
  589. 1.3
  590. A neat way to test more than one expression at once, without having to
  591. use heavily nested IF’s is to use “CASE TRUE OF”. For example,
  592. 1.3
  593. CASE TRUE OF
  594. 1.3
  595.   WHEN X=3 AND Y=4:PRINT“X=3 and Y=4”
  596. 1.3
  597.   WHEN X>7, Z=0:PRINT“X>7 OR Z=0”
  598. 1.3
  599. ENDCASE
  600. 1.3
  601. However, you should beware of mixing numerics and logicals in CASE
  602. expressions. For example,
  603. 1.3
  604. X = 6
  605. 1.3
  606. CASE X OF
  607. 1.3
  608.   WHEN TRUE : PRINT “TRUE”
  609. 1.3
  610.   WHEN FALSE : PRINT “FALSE”
  611. 1.3
  612.   OTHERWISE PRINT “SPURIOUS”
  613. 1.3
  614. ENDCASE
  615. 1.3
  616. this prints “SPURIOUS” because ‘6’ is neither true (−1) or false (0).
  617. 1.3
  618. •   Improved boot file for WWPlus − The !BOOT file on the Archimedes
  619. Wordwise Plus discs is a BASIC program which checks whether the 6502
  620. emulator is installed and if not loads it off the Welcome disc. If
  621. instead you copy 65arthur onto your Wordwise Plus discs you can use a
  622. simpler boot file which just says:
  623. 1.3
  624. QUIT
  625. 1.3
  626. 65ARTHUR
  627. 1.3
  628. WW+
  629. 1.3
  630. and then do a *OPT 4 3 so that the computer EXEC’s the boot file instead
  631. of running it. If you are using the disc version of CP-ROM, just add
  632. 1.3
  633. :SELECT SEGMENT 8
  634. 1.3
  635. :LOAD TEXT “$.CP-ROM.CPstart”
  636. 1.3
  637. *FX138,0,152
  638. 1.3
  639. to the boot file and it will start up the CP-ROM as well.
  640. 1.3
  641. •   Have you seen the whale?! − When playing Zarch, one or two folk have
  642. discovered a whale that appears in the sea (or is it a shark or a sea-
  643. monster?). You get 1000 points if you exterminate it and sometimes it
  644. “beaches” itself and becomes a much easier target. By the way, how are
  645. the scores going? I’ve just about managed to avoid being called a wet
  646. lettuce or a stuffed aubergine, but one reader, Malcolm Roberts says his
  647. son has reached 53,291.
  648. 1.3
  649. (STOP PRESS! I’ve just seen it too − very fleetingly. It was bluish with
  650. a zig-zag fin on its back!)
  651. 1.3
  652.  
  653. •   Having asked last time about function keys 14 and 15, it seems that
  654. they are only available when the cursor editing is switched off by doing
  655. a *FX4,2 after which, cursor right, down and up give definitions 13, 14
  656. and 15. (Remember that 13 is normally available on the insert key
  657. anyway.)
  658. 1.4
  659. •   Word-Perfect does not work under the PC-Emulator at present. This is
  660. due to a bug in the emulator which is being fixed − a new version will
  661. be available “shortly”.
  662. 1.4
  663. •   If you want to read the mouse when using the 6502-emulator, this can
  664. be done in BASIC IV by using ADVAL 7 and 8 to return the X and Y co-
  665. ordinates respectively. 6502 machine code programs can be modified to
  666. use OS_Byte 128 with X=7 to give the X value and X=8 to give the Y
  667. value. The co-ordinates are returned in the X and Y registers, X being
  668. the low byte and y the high byte.
  669. 1.4
  670. If you want to read the mouse buttons from BASIC IV, use INKEY(-n) where
  671. n=10, 11 and 12 for select, menu and adjust respectively and in machine
  672. code use OS_Byte 129 with X containing the -n number (&F6, &F5 and &F4)
  673. and Y containing &FF.
  674. 1.4
  675. •   Users of the Acorn colour monitors may not have realised that there
  676. is a switch inside the control panel at the front of the monitor which
  677. switches off all but the green gun. Depressing this switch makes the
  678. display slightly easier to read, especially if you are trying to use a
  679. 132 column mode.
  680. 1.4
  681. •   Setting the “*TIME” format − The output format used by *TIME can be
  682. changed via a ‘*SET Sys$DateFormat’ command. The following is a list of
  683. the valid parameters and the result they will return:
  684. 1.4
  685. %am   Display ‘am’ or ‘pm’ depending on the time.
  686. 1.4
  687. %pm   Display ‘am’ or ‘pm’ depending on the time.
  688. 1.4
  689. %ce   Current century
  690. 1.4
  691. %cs   (Centiseconds) Hundredths of a second
  692. 1.4
  693. %dn   Day number (001 = 1st January)
  694. 1.4
  695. %dy   Day of the month
  696. 1.4
  697. %mi   Minutes
  698. 1.4
  699. %mn   Month number
  700. 1.4
  701. %mo   Current month (e.g. ‘January’)
  702. 1.4
  703. %m3   Current month abbreviated to 3 characters (e.g. ‘Jan’)
  704. 1.4
  705. %se   Seconds
  706. 1.4
  707. %st   Day of the month trailer (i.e. ‘st’, ‘nd’, ‘rd’ or ‘th’)
  708. 1.4
  709. %we   Weekday (e.g. ‘Wednesday’)
  710. 1.4
  711. %w3   Weekday abbreviated to 3 characters (e.g. ‘Wed’)
  712. 1.4
  713. %wk   Week number (since start of year)
  714. 1.4
  715. %wn   Weekday number (1 = Sunday, 7 = Saturday)
  716. 1.4
  717. %yr   Current year (e.g. 87)
  718. 1.4
  719. %12   Hours on 12 hour clock
  720. 1.4
  721. %24   Hours on 24 hour clock
  722. 1.4
  723. Note that changing the format does not affect the TIME$ format as used
  724. in BASIC V.
  725. 1.4
  726. The default setting, which is: %w3,%dy %m3 %ce%yr.%24:%mi:%se, can be
  727. seen by typing *SHOW S*.
  728. 1.4
  729. If the date or the year is changed, the day of the week is automatically
  730. recalculated, so no errors occur. (See competition results on page 46.)
  731. 1.4
  732. Other characters may also be inserted into the definition of the *TIME
  733. format. For example,
  734. 1.4
  735. *SET Sys$DateFormat %we, %dy%st %mo, %ce%yr. Time: %24:%mi [%se seconds]
  736. 1.4
  737. will produce output in the form: “Monday, 07th December, 1987. Time:
  738. 12:07 [45 seconds]”.
  739. 1.4
  740. If you want to strip off the leading zero on the %dy output, use %zdy%st
  741. which will produce “7th December”. If you want, for some reason to have
  742. the character ‘%’ as part of the format, use “%%”.
  743. 1.4
  744. If you want to split the string into several zero-terminated strings,
  745. you can use ‘%0’ which will insert a zero byte into the string.
  746. 1.4
  747. New time formats in BASIC − If all you want to do is print out the value
  748. of time within a BASIC program you can simply use the star command *TIME
  749. as a line within the program. If however you want to pick up the time as
  750. an actual string, you need to use the following function:
  751. 1.4
  752. DEF FNnewtime
  753. 1.4
  754. LOCAL Workarea, Time$
  755. 1.4
  756. DIM Workarea 256
  757. 1.4
  758. ?Workarea = 3
  759. 1.4
  760. SYS “OS_Word”,14,Workarea,256
  761. 1.4
  762. SYS “OS_ConvertStandardDateAnd Time”,Workarea,Workarea,256 TO Time$
  763. 1.4
  764. =Time$
  765. 1.4
  766. Help!!! The format which the system uses to record time and date is a 40
  767. bit number (as used to store the datestamp of a file) but we have not as
  768. yet found a system routine to convert any date into this format. Has
  769. anyone found such a routine or written anything of the sort?
  770. 1.4
  771. •   Break/escape effects − To control the effects of <escape> and
  772. <break> with various combinations of <ctrl> and <shift>, you can use
  773. *FX247,n where n is a binary number whose eight bits control the various
  774. effects as follows:
  775. 1.4
  776. Bits 7 and 6 control action of <shift-ctrl-break>
  777. 1.4
  778.    7   6
  779. 1.4
  780.    0   0   −   “Normal action” (= hard reset + boot drive 0)
  781. 1.4
  782.    0   1   −   Acts like <escape>
  783. 1.4
  784.    1   0   −   Disables <shift-ctrl-break>
  785. 1.4
  786. Bits 5 and 4 control action of <ctrl-break>
  787. 1.4
  788.    5   4
  789. 1.4
  790.    0   0   −   Hard reset
  791. 1.4
  792.    0   1   −   Acts like <escape>
  793. 1.4
  794.    1   0   −   Disables <ctrl-break>
  795. 1.4
  796. Bits 3 and 2 control action of <shift-break>
  797. 1.4
  798.    0   0   −   Boots disc in drive 0
  799. 1.4
  800.    0   1   −   Acts like <escape>
  801. 1.4
  802.    1   0   −   Disables <shift-break>
  803. 1.4
  804. Bits 1 and 0 control action of <break>
  805. 1.4
  806.    0   0   −   Soft reset
  807. 1.4
  808.    0   1   −   Acts like <escape>
  809. 1.4
  810.    1   0   −   Disables <break>
  811. 1.4
  812. The default setting (on 0.20 OS) seems to be *FX247,1 so that all works
  813. “as normal” except that the break key has been turned into another
  814. escape key. Typing *FX247,0 or just *FX247 turns the break key into the
  815. old “proper” break key that BBC owners will remember, i.e. it does a
  816. soft reset, as does the reset button on the back of the keyboard.
  817. 1.4
  818. •   When you re-load a picture created by the ARM-Paint program, you
  819. sometimes find that certain of the colours are flashing. To avoid this,
  820. add a line to the PAINTING program:
  821. 1.4
  822. 18165 *FX9
  823. 1.4
  824. which should fix the problem. It actually flashes while the picture is
  825. being loaded but then the flashing stops when this line is executed.
  826. 1.4
  827. •   Long printer cables. Those of you who have been using very long
  828. printer cables on the BBC micro will find that the Archimedes’ printer
  829. output has not got sufficient drive to cope with more than about 2
  830. metres of cable. The only way to get round this would be to use a
  831. printer buffer that had a higher output drive capability.
  832. 1.4
  833. •   For an interesting sound effect (on 0.30 Arthur), type in
  834. “*Configure Sounddefault 1 7 7” followed by <ctrl-break>. This alters
  835. the bell sound as produced by VDU7. To return to normal, set Soundde
  836. fault 1 7 1.
  837. 1.4
  838. •   For those who still haven’t got a word-processor (you did fill in
  839. your registration form, didn’t you?!?) and are wanting to use the BASIC
  840. editor as a wordprocessor, type *KEY0 L.O8||ML.||B||M||A||?||A||?||C and
  841. you will find that the ‘print’ key lives up to its name.
  842. 1.4
  843. •   ROMs that work under the emulator. The second processor version of
  844. ISO Pascal (files Dpascal and Dcomp on the disc that comes with the two-
  845. ROM set) works fine under the emulator though the compilation time is a
  846. little slower than on the Beeb.
  847. 1.4
  848. Anyone who has the EDIT software from the BBC Master can transfer it to
  849. the Archimedes and it seems to work OK. There appears to be a strange
  850. message when the software is called and if the function key help screen
  851. is selected, it looks a bit peculiar. If you only want to process small
  852. amounts of text (about 30k) then use EDIT − it’s much cheaper than
  853. buying TWIN for £30.
  854. 1.4
  855. •   The default values of the parameters in the HardcopyFX module are
  856. 0,1,1,0,1 which gives, in order, landscape (i.e. sideways − to get
  857. portrait, use 1), X and Y scale factors of 1 (no limit, it seems, but
  858. you can’t use fractions), the margin which is measured in 1/72 nds of an
  859. inch with a maximum of 576 and finally the threshold (the colour number
  860. which determines whether a dot is printed or not, I presume) which can
  861. take values up to 255. There is a clever “Printer Time Out” error built
  862. into the code in case the printer is not connected.
  863. 1.4
  864. •   Switching off the desktop on Arthur 1.2.
  865. 1.4
  866. If, having changed from operating system 0.2 to 1.2, you don’t like
  867. going into the desktop every time you switch on, you can *CONFIGURE
  868. Language 4 and <ctrl-break> and you will be brought into BASIC instead.
  869. The desktop can then be called up with *DESKTOP at any time. If you
  870. decide to go back to initialising into the desktop, *CONFIGURE Language
  871. 3 should do the trick.
  872. 1.4
  873. Do keep the hints & tips coming. They are one of the most useful parts
  874. of the magazine − do you agree? We could do with more feedback about
  875. what you like and what you don’t.
  876. 1.4
  877. The trouble is that you remember that you read something but cannot
  878. remember in which issue or on which page so we’re hoping to do a full
  879. Archive index − anyone like to start it off for us? Would you like just
  880. a paper index or one on database? Let me know what you think.
  881. 1.4
  882. Watch out too for a binder for your Archive magazine. More details next
  883. month.
  884.  
  885. •   Text files for BASIC. I always used to write my BASIC programs in
  886. Wordwise and put an AUTO command as the top line then go into BASIC and
  887. NEW and then *EXEC <filename>. But IÕve just discovered (what IÕm sure
  888. you all knew already) that BASIC can do it for me. You donÕt have to put
  889. AUTO at the top you just say  *BASIC -LOAD <filename> and it will load
  890. the text version of the program and put line numbers onto it. However,
  891. as with the *EXEC technique, you cannot use long multi-statement lines
  892. or you will get the “Line too long” error.
  893. 1.05
  894. (One reader, who was using Arthur 0.2, found that text files longer than
  895. 32k got corrupted, but I tried it on my system with BASIC 1.02 and
  896. Arthur 1.2 and it seemed OK.)
  897. 1.05
  898. •   Fast screen save. This is obviously something which a number of you
  899. have been thinking about. I got a lot of response to my pleas for help.
  900. Several of you gave ways of *SAVEing the screen information from the
  901. appropriate bit of RAM and re-loading it there, though this obviously
  902. will not bring with it the palette information or the correct mode. For
  903. example:
  904. 1.05
  905. DEF PROCscreensave(filename$)
  906. 1.05
  907. LOCAL K%
  908. 1.05
  909. CASE MODE OF
  910. 1.05
  911.   WHEN 0,1,4,5,6 : K%=20
  912. 1.05
  913.   WHEN 2,3,8,9,11,18 : K%=40
  914. 1.05
  915.   WHEN 7,10,12,13,14,19 : K%=80
  916. 1.05
  917.   WHEN 16,17 : K%=132
  918. 1.05
  919.   WHEN 15,20 : K%=160
  920. 1.05
  921. ENDCASE
  922. 1.05
  923. !&80=149:!&84=-1
  924. 1.05
  925. SYS 49,&80,&88 : REM OS_ReadVduVariables
  926. 1.05
  927. OSCLI“SAVE ”+filename$+“ ”+STR$
  928. 1.05
  929. ~(!&88)+“ +”+STR$~(K%*1024)
  930. 1.05
  931. ENDPROC
  932. 1.05
  933. This takes only a second or two to save the screen. It can be reloaded
  934. by typing *LOAD filename. The program saves the whole screen, not just
  935. the graphics window. You must not have scrolled the screen prior to
  936. saving or re-loading, but a CLS before re-loading will cancel the
  937. scrolling. Also, you must be in the right mode for the screen you are
  938. about to load and you need to have the same screen colour definitions
  939. set up.
  940. 1.05
  941. What we have been promised though is a module, which we hope to publish
  942. next month, which will give you legal *commands (or SWIs) for loading
  943. and saving screen information including palette and mode and you will
  944. find that it is several times faster than the existing SCREENSAVE
  945. routines.
  946. 1.05
  947. •   Extra help on BASICÉ (OS1.2) If you type *BASIC -help<return> you
  948. get a bit more help information about BASIC. (But does anyone know what
  949. the last two bits refer to? i.e. what is an “in-core” program? Does it
  950. mean you can have more than one program in memory?)
  951. 1.05
  952. •   ADFS: If you name all your discs with *NAMEDISC, the Archimedes will
  953. remember the previously mounted discs. So, for example, if you put in a
  954. disc called TESTING and you *MOUNT it and then put in a disc called
  955. BASICPROGS and *MOUNT that, you can then see the directory of TESTING
  956. without putting the disc back in again. All you do is type *MOUNT
  957. TESTING and you can *CAT it. If you then want to look at the disc that
  958. is in the drive, you will of course have to *MOUNT again. The only
  959. problem occurs when you have backup discs because they will have the
  960. same name — this gives “Ambiguous disc name”.
  961. 1.05
  962. •   Sprite Editor. “To create a new spriteÉ” It took me ages to find out
  963. how to create a new sprite. The manual tells you to click on the
  964. “Create” box and “you are then prompted for a name and a mode”. I was
  965. expecting a prompt something like: “Please enter name:”. I saw the words
  966. “Create sprite” appear at the bottom of the screen and assumed it wanted
  967. some sort of confirmation that that was what I wanted to do, but
  968. whatever I did, the words disappeared again! In fact that is the actual
  969. prompt that the manual was referring to! All you do is type in the new
  970. name and press <return>. You would have thought they could have put in a
  971. more obvious prompt than that — or maybe just switched on the cursor to
  972. indicate that it was time to type something rather than click on the
  973. mouse buttons, but perhaps I have been spoiled by using the Apple Mac
  974. where prompts are rather more obvious and logical! Huhh!
  975. 1.05
  976. •   Reading the catalogue. An easier way to read the contents of a
  977. catalogue, rather than reading it off the screen (see Gus GemÕs article
  978. last month) is to use SYS “OS_GBPB” as followsÉ
  979. 1.05
  980. DIM C% 999
  981. 1.05
  982. !&80=&2A00
  983. 1.05
  984. SYS “OS_GBPB”,9,&80,C%,999,0,
  985. 1.05
  986. 999 TO ,,,ENTRIES
  987. 1.05
  988. This stores the filenames and sub-directories of the current directory
  989. at the address C%, in alphabetical order and each terminated by a zero
  990. byte. The number of entries is stored in the BASIC variable ENTRIES.
  991. 1.05
  992. •   Neater than OSCLIÉ SYS 6 (equivalent of FX calls) is much neater
  993. than using OSCLIs: e.g. Matthew TreagusÕ screen bank switching would
  994. look neater if, instead of using OSCLI (“FX112,”+STR$N%) he had used SYS
  995. 6,112,N%. If you donÕt like the anonymity of SYS 6, you can use SYS
  996. “OS_Byte”,112,N%. (See GeraldÕs article on page 12.)
  997. 1.05
  998. •   BeebugÕs Masterfile can be made to work on the Archimedes without
  999. using the emulator — it just needs a very few modifications — contact
  1000. DrÊÊPeter Catermole at Winchester College, Kingsgate Road, Winchester,
  1001. SO23 9PG.
  1002. 1.05
  1003. •   BBC ROMs — Continuing the saga of poking various bytes to get BBC
  1004. ROMs to work under the emulator, View B3.0 should apparently have A8A1,
  1005. 2 and 3 poked to &EA and Viewspell 1.0, &820F, 8210 and 8211 likewise.
  1006. 1.05
  1007. •   When setting the clock, the setting box sometimes covers the face of
  1008. the clock, so point at the bottom right hand corner of the clock box and
  1009. then press the middle mouse button.
  1010. 1.05
  1011. •   Plugging modules in and out. ItÕs all very well to have lots of
  1012. modules in the 1.2 ROM but, at power up, several of these modules are
  1013. installed into ram which cuts down your available memory. Exactly which
  1014. ones are installed is set by various bytes in the CMOS ram. To find out
  1015. what all the modules are and whether they are actually active, type
  1016. *ROMModules. (or just *ROM. for short.) You can “unplug” the modules by
  1017. using *UNPLUG <modulename> and it stays unplugged until you “insert” it
  1018. again with *RMREINIT <modulename>. It seems that the extra space does
  1019. not become available until you press <ctrl-break>. If you type *UNPLUG
  1020. without a module name it tells you which modules are currently
  1021. unplugged.
  1022. 1.05
  1023. •   HowÕs this for a screen dump? (sent in by Ken Yeardley) It is for
  1024. mode 0, it works on the NEC PC8023, it can be put on a function key and
  1025. it only takes 118 seconds.
  1026. 1.05
  1027. VDU2,1,27,84,1,&31,1,&36: FOR
  1028. 1.05
  1029. A%=&1FDCFB0 TO &1FDCFFF:VDU2,
  1030. 1.05
  1031. 1,27,83,1,&30,1,&35,1,&31,1,&32:
  1032. 1.05
  1033. FOR B%=A% TO A%-20400 STEP-&50:
  1034. 1.05
  1035. VDU1,?B%,1,?B%: NEXT: VDU1,10:
  1036. 1.05
  1037. NEXT: VDU3
  1038. 1.05
  1039. The reason it is so short is that the NEC printer has the MSB and LSB of
  1040. the byte that defines which pins hit the paper, the opposite way round
  1041. from Epson printers. (See page 9 for a sample screendump.
  1042. 1.05
  1043. •   Beware the microwave! One reader was having problems with data
  1044. corruption on the RS423 but it turned out to be only when his wife was
  1045. using the microwave oven four yards away, the other side of a brick
  1046. wall!
  1047. 1.05
  1048. •   HereÕs a little routine sent in by Mike Hobart which uses the
  1049. debugger module for disassembly and memory dumps. It doesnÕt quite rival
  1050. Toolkit, but itÕs a bit cheaper!
  1051. 1.05
  1052. INPUT“Disassembly or Memory dump? (D/M)”,R$
  1053. 1.05
  1054. CASE R$ OF
  1055. 1.05
  1056.   WHEN “d”,“D” : N%=FNi:REPEAT PROCx(“I”,N%,“ +10”):UNTIL FALSE
  1057. 1.05
  1058.   WHEN “m”,“M” : N%=FNi:REPEAT PROCx(“”,N%,“ +FF”):UNTIL FALSE
  1059. 1.05
  1060. ENDCASE
  1061. 1.05
  1062. END
  1063. 1.05
  1064. DEFPROCx(S$,M%,L$)
  1065. 1.05
  1066. WHILE INKEY(-99)
  1067. 1.05
  1068.   OS_CLI(“MEMORY”+S$+“ ”+
  1069. 1.05
  1070. STR$~(N%)+L$)
  1071. 1.05
  1072.  N%=N%+100
  1073. 1.05
  1074. ENDWHILE
  1075. 1.05
  1076. ENDPROC
  1077. 1.05
  1078. DEFFNi
  1079. 1.05
  1080. INPUT“From(Address &nnnnnn)”‘N$
  1081. 1.05
  1082. PRINT“Press <space> to scroll”
  1083. 1.05
  1084. IF ASCN$<>ASC“&”THEN N$=“&”+N$
  1085. 1.05
  1086. =EVAL N$
  1087. 1.05
  1088. •   Desktop on 1.2. (All the remaining H & T are based on material sent
  1089. in by Bruce Roberts.) As an alternative to double clicking on <select>
  1090. to open a file or run an application, try a single click on the adjust
  1091. button — it has the same effect.
  1092. 1.05
  1093. The quick way to open a diary (or notepad), rather than opening the
  1094. diary window first and then pressing <menu>, is to double click on the
  1095. diary icon on the disk directory — the window opens automatically.
  1096. 1.05
  1097. You can now save diaries and notepads with whatever name you like and
  1098. you can also click, or move with the cursor keys, and put text anywhere
  1099. in the window.
  1100. 1.05
  1101. The following keys can now be used on diary and notepad:
  1102. 1.05
  1103. <insert>   Insert single character
  1104. 1.05
  1105. <copy>   Delete character to the right of
  1106. 1.05
  1107.    the cursor
  1108. 1.05
  1109. <ctrl-insert>   Insert a line above the cursor
  1110. 1.05
  1111. <ctrl-copy>   Delete a line
  1112. 1.05
  1113. <shift-left/right>   Move 4 characters sideways
  1114. 1.05
  1115. <ctrl-left/right>   Move to the end of the line
  1116. 1.05
  1117. Notepads can be created from within View by saving a file (up to 100
  1118. lines, 78 characters wide) and then doing a *SETTYPE <filename> &FEE.
  1119. Existing notepads can be edited with View provided you use READ
  1120. <filename> instead of LOADing it and WRITE <filename> instead of SAVEing
  1121. it.
  1122. 1.05
  1123. •   After using the desktop, the function keys do not produce the normal
  1124. programmable strings or ASCII values. It seems that this is because
  1125. Acorn have not stuck to their own rules (see ProgrammersÕ Reference
  1126. Manual, page 488) because they do not call SWI Wimp_ CloseDown. The
  1127. “fix” published elsewhere of typing *FX225,1 is fine if you only want to
  1128. restore the strings to f0 - f9. To get f10 - f12 back, you need *FX221,1
  1129. but the simplest thing seems to be to make sure that everything is back
  1130. to its default setting by using a program, perhaps called QUIT, which
  1131. you can run from the desktop instead of clicking on the exit icon. To
  1132. set the default of all the combinations of <ctrl> and <shift> with all
  1133. the function keys, you need:
  1134. 1.05
  1135.    *FX225,1
  1136. 1.05
  1137.    *FX226,&80
  1138. 1.05
  1139.    *FX227,&90
  1140. 1.05
  1141.    *FX228,0
  1142. 1.05
  1143.    *FX221,1
  1144. 1.05
  1145.    *FX222,&D0
  1146. 1.05
  1147.    *FX223,&E0
  1148. 1.05
  1149.    *FX224,&F0
  1150. 1.05
  1151.    MODE 0
  1152. 1.05
  1153.    *BASIC
  1154. 1.05
  1155. If you donÕt put in a MODE statement, youÕll find yourself typing
  1156. invisibly! The *BASIC means you come out into BASIC but with no program
  1157. in memory.
  1158. 1.05
  1159. As an alternative, you could miss out the call to BASIC and put:
  1160. 1.05
  1161.    W%=GET
  1162. 1.05
  1163.    *MOUNT
  1164. 1.05
  1165.    *!BOOT
  1166. 1.05
  1167. The idea would be that you would click on this program, change to the
  1168. disc you want to boot up, and press a key. You may want to include a
  1169. prompt to the user to “replace disc and press space bar” or somesuch.
  1170. The use of *!BOOT means that it doesnÕt matter if the boot file should
  1171. be *EXECed or *RUN — either will be done by the *!BOOT according to the
  1172. file type.
  1173. 1.05
  1174. •   Avoiding the desktop. If you don’t want to go into the desktop every
  1175. time you switch on or press <ctrl-break>, do a *CONFIGURE LANGUAGE 4 and
  1176. press <ctrl-break>. When you want to go into the desktop, type *DESKTOP
  1177. or *DES. for short. If you change your mind, *CON. LANG. 3 will bring
  1178. you into desktop at switch on or LANG. 0 will start you in the super
  1179. visor mode.
  1180. 1.05
  1181. •   View boot file. Here is a more sophisticated boot file than the one
  1182. we gave originally:
  1183. 1.05
  1184. *ECHO<22><3>
  1185. 1.05
  1186. *| selects mode 3
  1187. 1.05
  1188. *GOS
  1189. 1.05
  1190. *65ARTHUR
  1191. 1.05
  1192. *GO F800
  1193. 1.05
  1194. *LOAD VIEW 8000
  1195. 1.05
  1196. *GO 8000
  1197. 1.05
  1198. *ECHO<19><0><16><48><48><240>
  1199. 1.05
  1200. *| sets background colour
  1201. 1.05
  1202. *ECHO<19><1><16><240><240><208>
  1203. 1.05
  1204. *| sets foreground colour
  1205. 1.05
  1206. *ECHO<19><2><24><240><128><0>
  1207. 1.05
  1208. *| sets border/line colour
  1209. 1.05
  1210. SET FI
  1211. 1.05
  1212. *| sets Format and Insert modes
  1213. 1.05
  1214. NEW
  1215. 1.05
  1216. •   Avoiding *MOUNT. To avoid typing *MOUNT each time you put a new disc
  1217. in the drive, you can set an alias with, for example, *SET ALIAS$? MOUNT
  1218. | M CAT so that when you type *?<return> it does the mount and the
  1219. catalogue all in one.
  1220. 1.05
  1221. •   Centronics GLP screendump. The *HardCopyMX nearly works because the
  1222. printer  is Epson-compatible-ish! All you need to do is issue, from
  1223. BASIC, the following codes:
  1224. 1.05
  1225. VDU2,1,27,1,65,1,8,1,27,1,50,3
  1226.  
  1227. •   (1.2 OS) If you want to look at the desktop manager programs and
  1228. perhaps modify them and run them from disk, the following information
  1229. may be of use:
  1230. 1.6
  1231. The DESKTOP has its own filing system activated by *DESKFS. If you do a
  1232. *CAT, you will get:   DeskTopMgr
  1233. 1.6
  1234. DeskTopMgr2
  1235. 1.6
  1236. &.!palette
  1237. 1.6
  1238. Icons.Desktop
  1239. 1.6
  1240. Icons.Calculator
  1241. 1.6
  1242. Icons22.Desktop
  1243. 1.6
  1244. Icons22.Calculator
  1245. 1.6
  1246. You can then LOAD the DeskTopMgr2 program and LIST it. (DeskTopMgrÊis
  1247. just the 5-line startup program that gets left in BASIC when you exit
  1248. the desktop.)
  1249. 1.6
  1250. If you change back to *ADFS, you can then save the program. To copy the
  1251. palette and/or the Icons, you have to use commands such as:
  1252. 1.6
  1253. *COPY DESKFS:I*.Desktop $.I*.Desktop
  1254. 1.6
  1255. (assuming you are in ADFS and have created a directory called Icons)
  1256. 1.6
  1257. To run the program from disk, you need the icon and palette files to be
  1258. copied across then if you fancy tackling 76k of “crunched” BASIC
  1259. program, you can try editing it!
  1260. 1.6
  1261. •   If you are using the decrement or increment (+= or −=) in a BASIC
  1262. program and you get a “Mistake” error on that line, the chances are that
  1263. you have forgotten to initialise the variable. Try typing X=X+1:PRINT X
  1264. and it will give the value 1 but if you type Y+=1 it will say “Mistake”.
  1265. What it really should say is “Unknown or missing variable”, but still,
  1266. good programmers won’t get the problem because we always remember to
  1267. initialise all our variables, don’t we? (We do?)
  1268. 1.6
  1269. •   Testing multi-sync output without a multi-sync monitor! If you are
  1270. writing software and hoping to sell enough of it to be able to afford a
  1271. multi-sync monitor(!) you have the problem of testing your software in
  1272. modes 18 to 20. If you use *Configure MonitorType 1, modes 0 to 17 are
  1273. still displayed as normal then when you select modes 18 to 20 and
  1274. generate the screen output, you can use a screendump (such as Gerald
  1275. Fitton’s minidump or *HardCopyFX) to look at what you’ve got. If you’re
  1276. worried about damaging the monitor, switch it off before changing mode.
  1277. 1.6
  1278. •   Using large printer buffers etc. If you’re using a buffer that’s
  1279. larger than 64 kbytes, it’s no use trying to use ADVAL with a negative
  1280. number (e.g. PRINT ADVAL(-4) for the printer buffer) − it only returns
  1281. the least two significant bytes. Instead, use SYS “OS_Byte”, &80, &FC TO
  1282. , X%, Y% : bytes_free%= X%+256*Y% where &FC is the − 4 value. (Actually,
  1283. instead of working out that − 4 is the equivalent of &FC you can, it
  1284. seems, be lazy and use − 4 in the SYS command. Ed.)
  1285. 1.6
  1286. •   Easy loading of modules: To enable you to load the emulator and fast
  1287. BASIC easily, you can create some library programs on your Welcome disc
  1288. (or better still, a copy of your Welcome disc!). This is what you do for
  1289. fast BASIC:
  1290. 1.6
  1291. *BUILD LIBRARY.FAST
  1292. 1.6
  1293. *FX225,1|M
  1294. 1.6
  1295. *KEY1 QUIT||M*MODULES.RAMBASIC
  1296. 1.6
  1297. ||M*KEY1||MCLS||MHELP||M
  1298. 1.6
  1299. *FX138,0,129
  1300. 1.6
  1301. <escape>
  1302. 1.6
  1303. and then change it into a BASIC program with
  1304. 1.6
  1305.  *SETTYPE LIB*.FAST &FFB<return>.
  1306. 1.6
  1307. Note that there are double pad characters before each ‘M’ in order that
  1308. when the program line is run, each double pad character is interpreted
  1309. as a single pad character for the actual key definition.
  1310. 1.6
  1311. The bits after calling the module are optional. The first is to clear
  1312. key1 again in case you press it accidentally. The second is to clear the
  1313. screen and the third is to give a help message to show that you are
  1314. actually in RAM_BASIC. (See below).
  1315. 1.6
  1316. Once this is set up, to get into fast BASIC all you do is type
  1317. *FAST<return>.
  1318. 1.6
  1319. For the 6502 emulator, use the name LIB*.6502 and don’t put the HELP
  1320. command in because that does not work on BASIC IV.
  1321. 1.6
  1322. •   Tidying up after ArcWriter! You can do a similar thing to the above
  1323. hint in order to tidy up after using ArcWriter.
  1324. 1.6
  1325. *BUILD LIBRARY.RESET
  1326. 1.6
  1327. *FX225,1|M
  1328. 1.6
  1329. *KEY1 QUIT||M*CONFIGURE FONTSIZE
  1330. 1.6
  1331. 2||M*RMREINIT FONTMANAGER||M
  1332. 1.6
  1333. *RMTIDY||M*BASIC||M
  1334. 1.6
  1335. *KEY1||MHELP||M
  1336. 1.6
  1337. *FX138,0,129
  1338. 1.6
  1339. <escape>
  1340. 1.6
  1341. Typing *RESET will do the tidy-up for you.
  1342. 1.6
  1343. •   Identifying RAMBASIC. To get RAM_ BASIC to tell you that it actually
  1344. IS the RAM version and not the ROM version, you can change a few bytes
  1345. so that it prints out ‘RAM BBC BASIC’ instead of ‘ARM BBC BASIC’ on the
  1346. startup and HELP messages. To do this, proceed as follows:
  1347. 1.6
  1348. *LOAD MO*.RAM* 20000
  1349. 1.6
  1350. ?&202B0=ASC“R”
  1351. 1.6
  1352. ?&202B1=ASC“A”
  1353. 1.6
  1354. ?&23F78=ASC“R”
  1355. 1.6
  1356. ?&23F79=ASC“A”
  1357. 1.6
  1358. *SAVE MO*.RAM_BASIC 20000 +E434
  1359. 1.6
  1360. *SETTYPE MO*.RA* &FFA
  1361. 1.6
  1362. •   Reversing the CAPS lock. If you hold down the shift key when you put
  1363. the CAPS lock light on, you will find that the shift key now has the
  1364. opposite effect, i.e. letters typed without pressing shift come up as
  1365. uppercase letters, but when you press the shift key you get lower case
  1366. letters. This can be useful if you are programming and mostly work in
  1367. upper case but with occasional use of lower case.
  1368. 1.6
  1369. •   Displaying screens in different modes. If you have a screen that has
  1370. been SCREENSAVE’d, you can display it in another mode. (e.g. Artisan
  1371. screens in 256 colour modes!) Assuming you have configured spritesize to
  1372. at least 11, proceed as follows:
  1373. 1.6
  1374. MODE 13
  1375. 1.6
  1376. *SLOAD filename  \ NOT
  1377. 1.6
  1378.  *SCREENLOAD
  1379. 1.6
  1380. *SCHOOSE screendump
  1381. 1.6
  1382. PLOT &ED,0,0
  1383. 1.6
  1384. You will note that the palette has changed and that it is a lower
  1385. resolution, however, it will still be quite decent and you will have all
  1386. those lovely colours to play around with!
  1387. 1.6
  1388. If you choose mode 15, you will get the same picture displayed in 256
  1389. colours but squeezed into only half the screen width.
  1390. 1.6
  1391. If you want to change the colours you will have to load it into the
  1392. sprite editor (SEDIT) and change the colours manually.
  1393. 1.6
  1394. •   Using the View Series. You will find that after coming from the
  1395. desktop, TAB does not work. The solution is to type *FX219,9.
  1396. 1.6
  1397. ViewProfessional works fine if you use the second processor version −
  1398. the VP file on the 5.25“ disk − however it should be *LOAD’ed at 4000
  1399. (not 8000) and called with *GO 4000. (See page 5, Archive 1.1)
  1400. 1.6
  1401. •   Diary/Notepad problems. Beware: If you are printing something from
  1402. notepad or diary, check that an active printer is on-line before
  1403. starting to print otherwise the system may hang up and the only way out
  1404. is to press <ctrl-break> − frustrating if you haven’t saved the text
  1405. first!
  1406. 1.6
  1407. •   Slower listings. I know this is obvious to ex-BBC users, but I’ve
  1408. not seen mentioned anywhere the fact that holding <ctrl> and <shift>
  1409. keys down together will stop the screen scrolling. Archimedes lists
  1410. programs so quickly that even if you use <ctrl-N> to get a paged
  1411. listing, you may well get two pages instead of one if you hesitate on
  1412. pressing the shift key, so using <ctrl> and <shift> allows you to
  1413. control the listing yourself.
  1414. 1.6
  1415. •   File transfer between wordprocessors. If you have Wordwise Plus or
  1416. View files and you want to import them into GraphicWriter, use *SETTYPE
  1417. filename &FFF to ensure that GraphicWriter sees them as text files.
  1418. (Actually it should already see Wordwise Plus files as text because of
  1419. the save address that Wordwise Plus uses − check by doing *INFO *.) Then
  1420. you can simply load the files into GraphicWriter using the file menu. To
  1421. transfer the files back to View or Wordwise, you need to save them as
  1422. ASCII files. This is done by opening the file menu then clicking on the
  1423. word “TEXT” with the ADJUST button, typing in a filename and pressing
  1424. <return>.
  1425. 1.6
  1426. (I tried to do the same sort of thing with ArcWriter but it kept
  1427. crashing each time I tried to load a file, so I gave up!)
  1428. 1.6
  1429. •   Smart ON ERROR routine. If your ON ERROR routine includes the
  1430. following, you get the usual error message and then, if you press any
  1431. key other than <escape> it will drop into the ARM BASIC editor at the
  1432. offending line. So if you do not want to go into the editor, press
  1433. <escape> instead.
  1434. 1.6
  1435. ON ERROR OFF
  1436. 1.6
  1437. PRINT REPORT$+“ at line ”;ERL
  1438. 1.6
  1439. dummy%=GET
  1440. 1.6
  1441. SYS 5,(“KEY0 EDIT ”+STR$(ERL)
  1442. 1.6
  1443. +“|M”)
  1444. 1.6
  1445. SYS 6,138,0,128
  1446. 1.6
  1447. END
  1448. 1.6
  1449. If you prefer to move into EDIT a few lines above the offending line,
  1450. use STR$(ERL−50) or whatever.
  1451. 1.6
  1452. •   Dual purpose boot files. It is quite possible to have a boot file
  1453. that will work equally well from within the desktop or as a conventional
  1454. boot file operated with <shift-break>. What you do is *BUILD the file as
  1455. usual but then *settype <filename> &FFB which gives it a link to BASIC.
  1456. If you then double-click on it in the desktop, it adds line numbers to
  1457. it and runs it as a BASIC program. However, it will only work with
  1458. <shift-break> if the machine is configured to start up in BASIC, not in
  1459. the desktop (i.e. *CON. Language 4, not 3).
  1460. 1.6
  1461. •   With the PC emulator you can get more space than Mark Sealey
  1462. reckoned in his review last month by *unplugging various of the modules.
  1463. On reader reckons to get almost 590,000 bytes free (= 576k).
  1464. 1.6
  1465. •   Disabling Modules. Archive no.5 explains how *Unplug can be used to
  1466. disable Modules, but this method needs a <ctrl-break>. An alternative is
  1467. to use *RMKill and *RMTidy from the operating system *-prompt (not from
  1468. BASIC), e.g.
  1469. 1.6
  1470. *RMKill FontManager
  1471. 1.6
  1472. *RMKill StringLib
  1473. 1.6
  1474. *RMKill Percussion
  1475. 1.6
  1476. *RMKill ARMBasicEditor
  1477. 1.6
  1478. *RMKill WindowManager
  1479. 1.6
  1480. *RMTidy
  1481. 1.6
  1482. This typically releases 96 Kbytes of memory on an A310 machine and
  1483. doesn’t need a <ctrl-break>. It is particularly useful if you’re short
  1484. of space in BASIC, Pascal or FORTRAN, etc and aren’t using fancy sound,
  1485. the WIMP environment or the BASIC editor. Each module can be reinstated
  1486. by using *RMReinit <Module name>, or all can be restarted by <ctrl-
  1487. break>.
  1488. 1.6
  1489. •   GW BASIC on the PC Emulator. There is an undocumented way to get
  1490. back into the MS-DOS operating system after using GW BASIC. Try pressing
  1491. function key f-11.
  1492. 1.6
  1493. •   PC Emulator. Version 1.09 (which existing users can get by sending
  1494. back their old disc plus £15 to Acorn) runs, amongst other things,
  1495. Ability Plus, dBase 3 Plus, Kermit, Word Perfect, LTS NewsMaster (see
  1496. separate review). (Can anyone add to this list?)
  1497. 1.6
  1498. •   RS423É yet again! If you have the 1.2 operating system and if you
  1499. have the version of the serial chip that is made by GTE (it’s the 28 pin
  1500. IC at the back left of the pcb) and if you change over from using the
  1501. CTS line at the Archimedes end to using the DSR line (i.e. link 1, 4 and
  1502. 8 and join pin 6 to the RTS line from the other machine) then Acorn have
  1503. a fix which you load in as a module. Send a blank disc to Customer
  1504. Services to get a copy. The version they sent me didn’t work the first
  1505. time I tried it with some data transfer software so I pressed <escape>
  1506. and tried again and it worked perfectly at 19,200 baud. Then I tried
  1507. again and it wouldn’t send anything, pressed <escape> and away it went!
  1508. Still, when you do get it going it sends and receives at 19,200 baud in
  1509. both directions without any data corruption. I left it running for a
  1510. couple of hours and there was no corruption at all.
  1511. 1.6
  1512. •   After the desktopÉ simpler than the list of FX commands that we gave
  1513. last month is to call SYS“Wimp_CloseDown” (which is what Acorn should
  1514. have put in their desktop program in the first place!!!) but if you
  1515. don’t fancy trying to type that every time, getting upper and lower case
  1516. exactly correct, you can create a one line BASIC program with 10
  1517. SYS“Wimp_Close Down” and save it on your disk as $.library. undesk and
  1518. then just type *undesk (or whatever abbreviation you can get away with)
  1519. and all will be restored to normal.
  1520. 1.6
  1521. •   Using the Seikosha 250X printer is a bit of a problem. When you plug
  1522. it into the Archimedes, all power is lost. This seems to be because of
  1523. the +5.0 volts on lines 18 and 36 of the printer connector − these are
  1524. earthed at the Archimedes end and so have to be disconnected somehow.
  1525. One reader, Adrian Moreton, has succeeded but it is too complicated to
  1526. explain here. If you want the information, send us an s.a.e. and we’ll
  1527. send you a photocopy of his letter and the excellent diagrams he has
  1528. drawn.
  1529. 1.6
  1530. •   ADFS wildcards. Had you gathered that ADFS will take * or #
  1531. wildcards anywhere in a filename? On the BBC, you could only put them at
  1532. the end of the filename. So, for example, if you’ve got PROGRAM1,
  1533. PROGRAM2, PROGRAM3 etc you only need to say something like LOAD “PR*2”
  1534. or even LOAD “*2” if none of the other files have numeric endings. That
  1535. makes life much easier, doesn’t it?! (Thanks to Benjamin Finn for
  1536. pointing that out. The next hint is his, too.)
  1537. 1.6
  1538. •   Errors in library procedures. If an error occurs in a PROC or FN
  1539. that is installed using LIBRARY or INSTALL, the correct error message is
  1540. given but the line number quoted is the last number in the main program.
  1541. Although we cannot get a line number pointer to the error, we can at
  1542. least find out from which procedure in the main program the library
  1543. routine was called when the error occurred.
  1544. 1.6
  1545. At the beginning of each definition of a PROC or FN you should put
  1546. something like:
  1547. 1.6
  1548.    DEF PROCdosomething
  1549. 1.6
  1550.    LOCAL ERROR
  1551. 1.6
  1552.    ON ERROR LOCAL PRINT REPORT$
  1553. 1.6
  1554.  “ in PROCdosomething”:END
  1555. 1.6
  1556.       .
  1557. 1.6
  1558.       .
  1559. 1.6
  1560.    ENDPROC
  1561. 1.6
  1562. •   Help with Econet is offered by Michael Ryan of XOB, Balkeerie,
  1563. Eassie, By Forfar, Angus, DD8 1SR. Michael says, “Here are some comments
  1564. about Archimedes on Econet in response to comments in Archive 1.3, page
  1565. 8.
  1566. 1.6
  1567. “RDFREE is part of the Econet filing system module and hence not a disc-
  1568. based utility as with the BBC version. Issued with a user identity as
  1569. parameter, it gives the total disc free space and that user’s allocated
  1570. portion of it. Issued with no parameter, it returns the user’s own free
  1571. space and the total free space.
  1572. 1.6
  1573. “Acorn are supplying a number of other utilities including SETFREE,
  1574. SETSTAT, USERS, PROT and UNPROT, though they have not yet made it clear
  1575. how they are to be distributed, so don’t hold your breath.
  1576. 1.6
  1577. “Though it is very unlikely that they will supply the more sophisticated
  1578. utilities (VIEW, REMOTE, NOTIFY etc) all is not lost. XOB already have a
  1579. wide range of utilities for the BBC/Master series and have already
  1580. implemented several of them on the Archimedes. More details from us on
  1581. 0307−84364.”
  1582.  
  1583. •   Most of the keys on the numeric pad have secondary functions if used
  1584. with the Num Lock off. In BASIC, 1 gives copy, 2 and 3 are both cursor
  1585. down, 4 is cursor left, 5 doesn’t seem to do anything, 6 is cursor
  1586. right, 7 is ‘cursor home’ and 8 and 9 and cursor up. In View, the single
  1587. cursor movements are 2, 4, 6 and 8 while 3 and 9 are page down and page
  1588. up respectively.
  1589.  
  1590. •   GETfile and PUTfile on the MS-DOS emulator are difficult to use if
  1591. you only have a single drive. However, if you configure a RAM disc with
  1592. MS-DOS you can then copy MS-DOS files onto it and then form the ADFS
  1593. files on the physical drive and vice versa to take ADFS files in to the
  1594. MS-DOS file system.
  1595. 1.7
  1596. •   Programs that work under the PC-emulator. I’ve had lots of informa
  1597. tion about MS-DOS software that does work, but has anyone found any
  1598. software that does NOT work under the PC-emulator?
  1599. 1.7
  1600. •   With version 1.09 of the PC emulator, if you do the followingÉ
  1601. 1.7
  1602. *LOAD PC.Emulate 10000
  1603. 1.7
  1604. ?&137C8=0
  1605. 1.7
  1606. *SAVE PC.Emulate2 10000
  1607. 1.7
  1608. you will find that the memory isn’t cleared when you press the reset
  1609. button.
  1610. 1.7
  1611. •   One good book to help new MS-DOS’ers (sorry!) is “Quick Reference
  1612. Guide to MS-DOS” by Van Wolverton, published by Microsoft Press,
  1613. obtainable via Watford Electronics at £3.95. (ISBN 1-55615-025-3)
  1614. 1.7
  1615. •   From various reports, it seems that CHKDSK does work properly though
  1616. it has to be used with care. It can be used to repair the File Allo
  1617. cation Table (FAT) and repair errors in directories. Files are not
  1618. necessarily stored contiguously on an MS-DOS disc, so if part of a file
  1619. is lost then CHKDSK can be used to convert lost chains to files (i.e.
  1620. write to a disc directory). Generally, CHKDSK by itself is safe. CHKDSK
  1621. *.* /V is usually safe, but CHKDSK *.* /F is dangerous if you don’t know
  1622. what you are doing!
  1623. 1.7
  1624. •   One reader says he has solved the problem of “To linefeed or not to
  1625. linefeedÉ” by adding a single pole switch in parallel with the contact
  1626. on the printer dip-switch that sets the auto-linefeed on and off,
  1627. leaving the dip-switch in the open position, of course. Don’t forget
  1628. though that most printers only look at the dip-switch settings at power-
  1629. up, though some do so when you do a software reset with 27,64.
  1630. 1.7
  1631. •   With Arc-Writer, to get it not to double space on a Panasonic
  1632. printer, use the AW_PCedit program, select the RX80D and change the
  1633. number of steps per 100 units vertically from 21600 to 600.
  1634. 1.7
  1635. •   View 3 works under the emulator if you poke locations A8A1, A8A2 and
  1636. A8A3 with &EA.
  1637. 1.7
  1638. •   Acornsoft ISO Pascal, Comal, Prolog and LISP all work under the
  1639. emulator says one reader.
  1640. 1.7
  1641. •   Share Analyser (Synergy Software) works perfectly under the 6502
  1642. emulator.
  1643. 1.7
  1644. •   Four floppies on 1.2 OS. If you try *con. floppies 4, you will find
  1645. that it tells you the number is too big, but if you use *FX162,135,4 and
  1646. do a <ctrl-break>, you will finds that *STATUS tells you that you have
  1647. four floppies.
  1648. 1.7
  1649. •   Booting other drives. In contrast with the BBC micros, you can, on
  1650. Archimedes, *MOUNT 1 and then <shift-break> to boot the disc in drive 1.
  1651. 1.7
  1652. •   WIMP Manager. Be aware that the first time Wimp_poll is called, it
  1653. clears the screen.
  1654. 1.7
  1655. •   Fitting the backplane: It is an awkward job to fit the backplane
  1656. because two plastic spacers are used into which self-tapping screws have
  1657. to be inserted. This is best done in a vice to avoid stripping screw
  1658. heads and/or sticking screwdrivers through your fingers!
  1659. 1.7
  1660. •   ‘Unknown IRQ at &00000000’. If you get this error message (and
  1661. possibly find that the machine hangs up on you) check whether your RS423
  1662. lead is properly screened, if at all. If it is not screened, it seems to
  1663. be able to pick up interference (remember the micro-wave problems
  1664. mentioned in issue 5, page 8?) and this generates spurious interrupts.
  1665. 1.7
  1666. •   More ideas on the black art of RS423 communication! Here is one
  1667. reader’s recipe for succesful RS423 transfer, though it may not work for
  1668. everyoneÉ Try using the ‘fix’ module (Archive 1.6 program disc) with
  1669. pins 1,4,8 and 9 linked together and 6 (DSR) and 7 (RTS) as the control
  1670. lines.
  1671. 1.7
  1672. •   Running more than one BASIC program. If you have a BASIC program you
  1673. want to run while you are working on another program in memory, you can
  1674. program a couple of keys with:
  1675. 1.7
  1676. *KEY 4 P%=PAGE : PAGE=&30000
  1677. 1.7
  1678. : CHAIN “testprog”|M
  1679. 1.7
  1680. *KEY 5 PAGE=P% : OLD|M
  1681. 1.7
  1682. •   System Delta Plus: If you have trouble loading newly formed
  1683. databases and get “No Room” when you know there is plenty of room, add a
  1684. .D to the filename when loading, i.e. type in the filename as, say,
  1685. “RECORDS.D”.
  1686. 1.7
  1687. •   Inter-Word: If you have come from the desktop, you will find that
  1688. the tab key does not work. This can be corrected with *FX219,9.
  1689. 1.7
  1690. If you want the £ sign, you will find it is produced by the ` key (far
  1691. top left key).
  1692. 1.7
  1693. If you want the ` signÉ tough! (The £ sign duplicates the “insert ruler”
  1694. function!)
  1695. 1.7
  1696. •   Stuck in a black hole? If you find yourself typing in black on
  1697. black, try typing MODE MODE<return>. It allows you to type again, but
  1698. maintains the mode you were in.
  1699. 1.7
  1700. •   SystemDevs module. The redirection commands, some of which we said
  1701. didn’t seem to work, are sensitive to spacing. The correct forms are as
  1702. follows where the spaces are represented by bullets (•):
  1703. 1.7
  1704. *CAT•{•>•info• }
  1705. 1.7
  1706. Spools catalogue to file “info”
  1707. 1.7
  1708. *CAT•{•>>•info• }
  1709. 1.7
  1710. Adds catalogue to file “info”
  1711. 1.7
  1712. *BASIC•{•<•data• }•PROG
  1713. 1.7
  1714. Runs “PROG” and uses information in file “data” for input.
  1715. 1.7
  1716. •   Using the Acorn ROM Podule: No links are available for the RAM
  1717. sockets, although you can configure the sockets by software for 8k, 32k
  1718. or 128k RAM chips. Using HM6264LP-15 ram in the sockets and configuring
  1719. them as 8k does not immediately work. However if you configure them as
  1720. 32k chip and apply an offset of &2000 when loading i.e.:
  1721. 1.7
  1722. *RMLoad <podule number>
  1723. 1.7
  1724. <socket> <filename> 2000
  1725. 1.7
  1726. then your data will load correctly. This is because the Chip Select (CS)
  1727. on the 8k chips is on the pin Address 13 (pin 26) on the 32k and 128k.
  1728. This causes the 8k chip to be mapped into 8-16k and 24-32k hence the
  1729. offset of 8k. The inverted CS on pin 20 is common to all three devices.
  1730. (Without configuring them as 32k, the operating system reports that the
  1731. device is not big enough for an 8k offset.)
  1732. 1.7
  1733. •   Concerning Acornsoft C and TWIN: ‘Concurrency’ (keeping text in one
  1734. window and compiling a program in the other) does not work. The compiler
  1735. (v1.5A) has a bug in it that prevents it from working. Acorn said that
  1736. it used to work OK on the pre-release version! However, compiler output
  1737. can be sent to a file called tmp.temp if the -spool option is used.
  1738. 1.7
  1739. It may be necessary to relocate TWIN in order to compile programs. My
  1740. version of TWIN loaded at &60000 but needed to be relocated to &80000 to
  1741. allow the compiler enough space. (See below.) If the compiler crashes,
  1742. try increasing the SystemSize using *configure.
  1743. 1.7
  1744. The two compiler messages, ‘Fatal I/O error’ and ‘Binary output error’,
  1745. simply mean that your disc is full!
  1746. 1.7
  1747. •   More about TWIN. Twin is an editor which seems to have one or two
  1748. hidden features; firstly it is a relocatable program, and consequently
  1749. can be loaded anywhere where RAM exists (barring overwriting OS
  1750. workspace etc.). I have created a version which I call LoTwin which
  1751. loads at &10000; this leaves space for BASIC programs only 256 bytes
  1752. fewer than are available on a BBC Master using Shadow RAM, and yet it
  1753. allows me considerably more work space than the standard Twin.
  1754. 1.7
  1755. To create a version of Twin called ‘MYTWIN’ which loads and runs other
  1756. than at the ‘normal’ address, perform the following actions:
  1757. 1.7
  1758. *DIR <dir’ry_containing _Twin>
  1759. 1.7
  1760. *LOAD TWIN <new_load_address>
  1761. 1.7
  1762. *EX
  1763. 1.7
  1764. *SAVE MYTWIN <new_load_
  1765. 1.7
  1766. address> +<size>
  1767. 1.7
  1768. <size> is obtained from the 3rd column of hex data after the ‘*EX’.
  1769. 1.7
  1770. Then, to invoke the new version, type
  1771. 1.7
  1772. *MYTWIN
  1773. 1.7
  1774. and it will run. Pressing <shift-f5> followed by <T> after entering
  1775. MYTWIN will show the load address on the top line immediately to the
  1776. left of the time.I have yet to see mentioned in print the ‘warm start’
  1777. for TWIN. If something nasty happens and your Archimedes locks up just
  1778. as you have spent a couple of hours typing in something using TWIN, and
  1779. you have no option but to press <ctrl-break>, or even <ctrl-reset>, do
  1780. not despair, simply type:
  1781. 1.7
  1782. *GO <twin_start_address> -WARM
  1783. 1.7
  1784. and you will find yourself back in TWIN exactly as you were when the
  1785. ‘nasty’ happened, barring any corruption caused by the ‘nasty’. Don’t
  1786. forget the ‘-’ preceding the “WARM’! I have found myself in this
  1787. position after a momentary power cut, and although the warm start did
  1788. not restore TWIN as a fully functional editor (due to corruption), it
  1789. restored Twin’s ability to save text, so I saved what I had done, and
  1790. was then able to reload Twin, and then reload my text.
  1791. 1.7
  1792. •   Iso Pascal: Be warned before you buy Iso Pascal, it has NO support
  1793. for Arthur − otherwise, says one reader, it is an excellent implementa
  1794. tion. Also (in common with C) it comes with a very thin manual, so a
  1795. copy of TWIN and a book about the language (see the mini-review on page
  1796. 25) will be needed for most people.
  1797. 1.7
  1798. (More information  about other languages was sent in, but this was all I
  1799. could digest with my limited knowledge of languages other than BASIC.
  1800. Would anyone be prepared to receive all the “other languages” informa
  1801. tion and knock it up into a special section each month?)
  1802. 1.7
  1803. Using the Computer Concepts ROM Podule
  1804. 1.7
  1805. How many times have you had to press <ctrl-break> and muttered under
  1806. your breath because you’ve lost your function key definitions? That need
  1807. never happen again if you have Computer Concepts’s ROM podule with some
  1808. battery-backed RAM on it. All you do is configure the system to start up
  1809. in the RFS instead of the ADFS and also configure it to auto-boot. Then
  1810. in the RFS, you put a boot file something like:
  1811. 1.7
  1812. REM > RFS:!BOOT
  1813. 1.7
  1814. *SET Run$Path ,ADFS:$.,RFS:$.%.
  1815. 1.7
  1816. *ADFS
  1817. 1.7
  1818. *FX255,8
  1819. 1.7
  1820. PRINT “Acorn ADFS”‘
  1821. 1.7
  1822. *KEY 0 These are
  1823. 1.7
  1824. *KEY 1 my favourite
  1825. 1.7
  1826. *KEY 2 key definitions
  1827. 1.7
  1828. *SET ALIAS$> Cat
  1829. 1.7
  1830. *SET ALIAS$? HELP etc
  1831. 1.7
  1832. *BASIC
  1833. 1.7
  1834. (You will notice that the Run$Path uses ‘$’ instead of ‘%’ as stated on
  1835. page 28 of the Computer Concepts manual.)
  1836. 1.7
  1837. •   To get the Inter series software to boot up with a simple call such
  1838. as *ISHEET, copy 65Arthur into the RAM area using *COPY
  1839. ADFS:Modules.65Arthur RFS:65Arthur and, providing you have set up the
  1840. Run$Path as above, *ISHEET, *IWORD and *ICHART will automatically load
  1841. the emulator and then the appropriate software.
  1842. 1.7
  1843. •   Installing Wordwise Plus. If you copy the Archimedes version of
  1844. Wordwise Plus from Computer Concepts’s disc (filename “WW+”) into the
  1845. RFS calling it, say, WWIMAGE, you can modify the BASIC program “ISHEET”
  1846. and save it as “WW+” so that, as above, you can just type *WW+ and it
  1847. will auto-load the emulator and run the software. The modifications are
  1848. to change the references to “ISIMAGE” at lines 130 and 270 into
  1849. “WWIMAGE”.
  1850. 1.7
  1851. •   If you want to modify any of the programs in a ROM, all you do is
  1852. either LOAD it, edit it and SAVE it or, if you have the modified version
  1853. on disc, just *COPY it. If you tell it to SAVE a file with a name that
  1854. exists in ROM it gives the ram version precedence over the ROM version.
  1855. 1.7
  1856. To find out whether a particular file is in ROM or RAM, use the *INFO
  1857. <filename> command. If it comes up with a “*” before the final figure of
  1858. the information, the file is in the RAM area. To get the ROM version
  1859. back, you either have to do a <ctrl-break> or type *RMREINIT RFS
  1860. <return> because *delete filename removes all trace of it so that even
  1861. the ROM version is inaccessible.
  1862. 1.7
  1863. Thanks to Adrian Look for all the following hints and tips.
  1864. 1.7
  1865. •   X-SWI’s. When using SWI’s if you put an X before the name then the
  1866. SYS call from BASIC will not generate an error. For example:
  1867. 1.7
  1868. SYS “XOS_CLI”,block
  1869. 1.7
  1870. •   Modes & drawing speed. The VIDC receives the video data down the
  1871. data bus lines of the ARM processor. While this is happening the RISC
  1872. chip cannot perform any processing. This means that the screen modes
  1873. using higher memory will be slower. Try timing a FOR-NEXT loop of
  1874. 1,000,000!  So, if speed is of the essence, it may be better to go into
  1875. mode 0, do the calculations and save them in an array and then go into
  1876. mode whatever to plot the results.
  1877. 1.7
  1878. However, there is a compensating factor. The lower memory modes use one
  1879. byte to represent several pixels, thus addressing pixels requires extra
  1880. calculation − whereas the higher memory modes use only one byte to
  1881. represent a pixel so addressing pixels is much quicker. This means that
  1882. graphics will be quicker in higher modes.
  1883. 1.7
  1884. Mode   F/N loop   Draw   Mem.   Colours
  1885. 1.7
  1886.       (secs)   (secs)   (k)
  1887. 1.7
  1888.    0   14.9   51   20   2
  1889. 1.7
  1890.    1   14.9   38   20   4
  1891. 1.7
  1892.    2   15.6   34   40   16
  1893. 1.7
  1894.    3   15.6    −   40   Text
  1895. 1.7
  1896.    4   14.9   38   20   2
  1897. 1.7
  1898.    5   14.9   32   20   4
  1899. 1.7
  1900.    6   14.9    −   20   Text
  1901. 1.7
  1902.    7   15.6    −   80   T-Text
  1903. 1.7
  1904.    8   15.6   54   40   4
  1905. 1.7
  1906.    9   15.6   40   40   16
  1907. 1.7
  1908.    10   17.1   39   80   256
  1909. 1.7
  1910.    11   15.6    −   40   Text
  1911. 1.7
  1912.    12   17.1   61   80   16
  1913. 1.7
  1914.    13   17.1   45   80   256
  1915. 1.7
  1916.    14   17.1    −   80   Text
  1917. 1.7
  1918.    15   21.3   79   160   256
  1919. 1.7
  1920.    16   19.6    −   132   Text
  1921. 1.7
  1922.    17   19.5    −   132   Text
  1923. 1.7
  1924.    18   15.4   70   40   2
  1925. 1.7
  1926.    19   16.9   77   80   4
  1927. 1.7
  1928.    20   21.0   98   160   16
  1929. 1.7
  1930. •   OS_Pretty Print. Have you ever wondered how the operating system
  1931. manages to display all its messages without any of the words getting
  1932. split at the end of a screen line, no matter what mode it is in? Well,
  1933. the answer is ‘OS_ PrettyPrint’.
  1934. 1.7
  1935. If you print all your strings using this call it will stop any words
  1936. going over the end-of-line boundary. This call recognises the following
  1937. control characters in a special way:
  1938. 1.7
  1939. − CR (CHR$(13)) causes not just a carriage return but also a newline.
  1940. 1.7
  1941. − TAB (CHR$(9)) causes a tabulation to the next multiple of eight
  1942. columns.
  1943. 1.7
  1944. − CHR$(31) is a ‘pad character’, that is, the procedure will print a
  1945. space when this code occurs but it will not break the string up at this
  1946. point.
  1947. 1.7
  1948. Example:
  1949. 1.7
  1950. A$=“Hello my name is...”
  1951. 1.7
  1952. SYS “OS_PrettyPrint”,A$
  1953. 1.7
  1954. •   The QUICK option When you use the (Q)uick option in the *COPY and
  1955. *BACKUP commands, the OS will use all available memory. This means that
  1956. if you are in high memory screen modes then you will have less memory to
  1957. use. So if you want even quicker *COPYing or *BACKUPs then try it in a
  1958. mode which uses less memory.
  1959. 1.7
  1960. •   Run$Path and File$Path. The FileSwitch uses two system variables
  1961. called Run$Path and File$Path. You can see their values by typing
  1962. either:
  1963. 1.7
  1964. *SHOW File$Path <return> and/or
  1965. 1.7
  1966. *SHOW Run$Path <return>
  1967. 1.7
  1968. You will probably get the following results:
  1969. 1.7
  1970. File$Path : type String, value :
  1971. 1.7
  1972. Run$Path : type String, value : ,%.
  1973. 1.7
  1974. These are the default settings. The values stored in the File$Path and
  1975. Run$Path variables are actually a list of directory filenames separated
  1976. by commas and terminated with dots.
  1977. 1.7
  1978. When the FileSwitch is told to read a file it will look at File$Path
  1979. variable and search for the file in each of the directories listed until
  1980. it finds a match. Similarly the FileSwitch will do the same when it is
  1981. told to execute a file, only it will use the Run$Path variable as the
  1982. list of directories. For example:
  1983. 1.7
  1984. *SET File$Path RFS:%.,,%.
  1985. 1.7
  1986. This would cause the FileSwitch to search for the file first in the RFS
  1987. filing system’s library directory, then in the current filing system’s
  1988. current directory (hence the “,,” which means don’t add anything to the
  1989. filename as entered), and finally in the current filing system’s library
  1990. directory.
  1991. 1.7
  1992. Here is a list of all the possible directory prefixes (although you can
  1993. actually specify any directory by name − wildcards may be used):
  1994. 1.7
  1995.  *    −    all
  1996. 1.7
  1997.  $    −    root
  1998. 1.7
  1999.  &    −    user
  2000. 1.7
  2001.  @    −    current
  2002. 1.7
  2003.  ^    −    parent
  2004. 1.7
  2005.  %    −    library
  2006. 1.7
  2007.  }    −    previous
  2008. 1.7
  2009. •   Flushing the Mouse. You may have noticed that the mouse has a buffer
  2010. of its own. This means that the Arc stores all the mouse movements and
  2011. clicks just as it stores the keyboard entries. How many of you play
  2012. around with the mouse when a program is ‘thinking’ or waiting for a
  2013. screen to load? This will leave a whole load of mouse positions and
  2014. clicks in the buffer, so any subsequent MOUSE X,Y,B readings will not
  2015. reflect the true position of the mouse but the positions stored in the
  2016. buffer!!! So how do you clear the buffer? To flush all the buffers,
  2017. type:
  2018. 1.7
  2019. *FX 15 <return>
  2020. 1.7
  2021. to flush just the mouse buffer, type:
  2022. 1.7
  2023. *FX 21,9 <return>
  2024. 1.7
  2025. •   Local DATA statements. (Based on an idea sent in by C.R.Fitch) In
  2026. answer to the query last month, it is possible to have DATA statements
  2027. in a program that does not rely on line numbers. What you can do is to
  2028. use the error handler to pin-point a line number just before the local
  2029. data statements. For every data set you want to access, just use the
  2030. following format:
  2031. 1.7
  2032. DEFPROCdata_set
  2033. 1.7
  2034. LOCAL ERROR
  2035. 1.7
  2036. ON ERROR LOCAL RESTORE ERL
  2037. 1.7
  2038. IF ERL=0 THEN ERROR 1,“get line
  2039. 1.7
  2040.  number“
  2041. 1.7
  2042. RESTORE ERROR                    
  2043. 1.7
  2044. DATA 1,2,3,4,5 : REM put your
  2045. 1.7
  2046.  own data here
  2047. 1.7
  2048. ENDPROC
  2049. 1.7
  2050. Then if you want to use the data set, just call the procedure, as for
  2051. example:
  2052. 1.7
  2053. PROCdata_set
  2054. 1.7
  2055. FOR i=1 TO 5
  2056. 1.7
  2057. READ data:PRINT data
  2058. 1.7
  2059. NEXT i
  2060. 1.7
  2061. The procedure leaves everything exactly as it was (except the data
  2062. pointer) so it does not affect the program at all. The only snag is that
  2063. we don’t know where the old data pointer was so we can’t continue
  2064. reading data from where we left off! Any ideas??
  2065. 1.7
  2066. (The remaining information in this section is about using the MS-DOS
  2067. emulator. More information than this was sent in, but this was all I
  2068. could digest with my limited knowledge of MS-DOS. Would anyone be
  2069. prepared to receive all such information and knock it up into a special
  2070. MS-DOS section each month?)
  2071. 1.7
  2072.  
  2073. • Colour TV output for Archimedes?  If you haven’t got a colour monitor
  2074. and want to use a TV to look at the output from the Archimedes in
  2075. colour, you can feed the signal from the video output into the ‘video
  2076. in’ on a video recorder (always assuming you’ve got one!) and connect
  2077. the ‘RF out’ from the recorder to the TV.
  2078. 1.08
  2079. • Drive lights on external 5.25“ drives.  One reader suggested that to
  2080. avoid the external drive light coming on when I accessed the interal
  2081. drive(s) I should remove all links except DS1 (I use DS2 to make it
  2082. drive2), TO, RR and MS.  I followed his advice and it seems to be OK
  2083. now.
  2084. 1.08
  2085. • 400 or 300?  If a piece of software wants to find out if it is running
  2086. in a 300 series machine or a 400 series it can read the MEMC to find the
  2087. size of page being used, thus:
  2088. 1.08
  2089.    program segment missing
  2090. 1.08
  2091. • More buzzing.  One reader noticed that the buzzing from the speaker
  2092. gets worse when you upgrade from a 305 to a 310.  Other readers have
  2093. found that the buzz gets to an intolerable level with certain software
  2094. such as ArcWriter.  In any case, this is now recognised by Acorn as a
  2095. field change, so your local dealer should be able to sort it out for
  2096. you.  If your local dealer is not within easy reach then the “capacitor
  2097. fix” mentioned in issue 3, page 7, is easy enough to do as long as you
  2098. are reasonably competent at soldering.
  2099. 1.08
  2100.  
  2101. 1.08
  2102. • Printer Acknowledge Line.  The IOC (Input Output Controller) has a
  2103. printer acknowledge line which can be read from the ARM supervisor mode. 
  2104. However, it is not advisable to ‘play around’ in this area, unless you
  2105. know what you are doing, because some locations are read only and
  2106. attempting to write to them could damage your IOC chip.  Here is an
  2107. example program that reads the printer acknowledge line.
  2108. 1.08
  2109.    program segment missing
  2110. 1.08
  2111. • *TypeFile Command.  One reader tried to define an alias which types
  2112. out a file on the printer and then switches the printer off again, but
  2113. he found that it was easier said than done.  I set Adrian Look onto it
  2114. and he has managed to find a way of doing it (albeit rather tortuous!):
  2115. 1.08
  2116.    program segment missing
  2117. 1.08
  2118. then to print out the file, you do a *TypeFile<filename>.  The <60> and
  2119. <62> are the ASCII codes for “<‘ and “>”.
  2120. 1.08
  2121. It sounds a bit long-winded, but what you are trying to do is generate
  2122. ASCII codes <2> and <3> to switch the printer on and off again.  When
  2123. you do a *SHOW, it gives the definition of TypeFile as ECHO |<2>|M TYPE
  2124. %0|M ECHO |<3>|M.
  2125. 1.08
  2126. • “What’s the time, Arthur??”  − If you wanted to change the prompt
  2127. which Arthur gives, you could try, for example:
  2128. 1.08
  2129.    *Set CLI$PROMPT >>>
  2130. 1.08
  2131. and you would get a question mark instead of the star prompt.  Then, if
  2132. you want Arthur to tell you time at each prompt, use:
  2133. 1.08
  2134.    *SETMACRO CLI$PROMPT <SYS$TIME>*
  2135. 1.08
  2136. This prints out the time and then prints the star prompt.  The reason
  2137. you use SETMACRO rather than just SET is that it needs to be a variable
  2138. which is up-dated each time the command is used.  If you don’t like the
  2139. seconds figure to be included, try:
  2140. 1.08
  2141.    <SYS$TIME><127><127><127>*
  2142. 1.08
  2143. This prints out the time but then generates three delete characters
  2144. which remove the seconds figures and the colon.
  2145.  
  2146. •   View B3.0. Following on from the hint about View B3.0, John Phelan
  2147. writes th•   “More articles about the basics, please”, said a number of
  2148. folk at the Micro User Show. WeÕve had something on using ADFS and are
  2149. starting assembler for beginners but can anyone say specifically what
  2150. they want information on and can anyone offer to write any “basic”
  2151. articles, please? In particularÉ
  2152. 1.09
  2153. •   Article on ARMBE. We really do need someone to write a very
  2154. practical guide to using the ARM BASIC Editor. For example, IÕve only
  2155. just realised that <insert> toggles between insert and over-write mode
  2156. and so you donÕt have to go through the preferences menu. I suspect a
  2157. lot of people are not using ARMBE simply because they are familiar with
  2158. BASICÕs own line editor and havenÕt got time to learn ARMBE even though
  2159. it would save them time in the long run. Please write to us if you would
  2160. like to have a go at this. Thanks.
  2161. 1.09
  2162. •   BASIC V utility library. If you have worked out some neat utilities
  2163. like the one in Hints & Tips about aligning decimal points, why not send
  2164. them in to us. Clifford Hoggarth has offered to edit the section, so
  2165. either send your contributions to us or direct to him at 20 Pinfold
  2166. Drive, Eccleston Mere, St Helens, WA10 5BT.
  2167. 1.09
  2168. •   Education articles. IÕm getting requests for articles relevant to
  2169. education, but no-one is offering such articles. Can anyone help?!
  2170. 1.09
  2171. •   Hard Disc users. One reader, who has a 440 on order, wants to know
  2172. if there are any doÕs and donÕtÕs with a hard disc. Are there any hard-
  2173. disc users who want to comment?
  2174. 1.09
  2175. •   View B3.0. Following on from the hint about View B3.0, John Phelan
  2176. writes that there is still a problem with the pound key. On the
  2177. Archimedes, this key returns ASCII 163. Is this redefinable?
  2178. 1.09
  2179. •   Calculating ¹ and e. Brian Cowan asks if anyone knows the way that
  2180. pi and/or e may be calculated digit by digit on a computer. Presum-ably
  2181. they must be all integer algorithms(?)
  2182. 1.09
  2183. •   Taxan KP-810 on ArcWriter. Has anyone worked out how to get a
  2184. printer driver working for this combination? Drop a line to E. Clinks
  2185. cales, 68 Wyvis Drive, Nairn, IV12 4TP.
  2186. 1.09
  2187. •   Video-titling. Is there any software, says M Davies of Cardigan, for
  2188. video-titling? Wild Vision do the hardware for Genlock and Video
  2189. Overlay, but where is the software?
  2190. 1.09
  2191. Also, he asks, is there any software, preferably ROM based, to give NLQ
  2192. print on his Epson RX80 and also desktop publishing?
  2193. 1.09
  2194. Help Answers
  2195. 1.09
  2196. •   Label printer for cassette tapesÉ Try the June issue of Micro User,
  2197. page 39.
  2198. 1.09
  2199.  
  2200. 1.09
  2201. •   View B3.0. In order to get View B3.0 working properly under the 6502
  2202. emulator, as well as poking the three bytes at &A8A1 to &EA you have to
  2203. poke &80C2 — 4 to &EA otherwise, the emulator tries to run it as a
  2204. second processor ROM image — without any success. With this patch, the
  2205. address space from &B328 to &BFFF is effectively free for patching.
  2206. Perhaps some enterprising programmer could use this space for extra
  2207. routines — e.g. a resident printer-driver.
  2208. 1.09
  2209. •   Special characters. If you want to generate special characters on-
  2210. screen, try pressing <ctrl-shift-alt> and then one of the ordinary keys
  2211. and you will find that you can get all sorts of alternative characters
  2212. such as © and ¨ and the half, quarter and three-quarter signs (which I
  2213. havenÕt even got on the Apple Mac!). What is more, if you are using Arc-
  2214. Writer, it will actually print some of the symbols, such as the
  2215. fractions, on the printer!
  2216. 1.09
  2217. •   PSU for external 5.25“ drives. If you have an external 5.25” disc
  2218. drive that does not have its own power supply, you can take the power
  2219. from the power supply for the hard disc but you will need a special
  2220. cable and connector. Those who have bought interfaces from Dudley Micro
  2221. Supplies might be able to get help from them. (Or try the ArcDFS
  2222. interface mentioned in Hardware & Software Available section.)
  2223. 1.09
  2224. •   Aligning decimal points. If you are trying to print out various
  2225. figures and want the decimal points to line up above one another, you
  2226. can use the “fixed format”. (See the explanation of the @% variable
  2227. under the section in the User Guide about the PRINT command.) However,
  2228. the fixed format prints out trailing zeros, e.g. it prints 234.0000
  2229. instead of 234.
  2230. 1.09
  2231. The bad news: One reader wanted to avoid this and so was trying to write
  2232. a BASIC routine to do the aligning and discovered some nasties (presum
  2233. ably due to rounding errors) that gave the value of LOG100 as 2 but
  2234. INT(LOG100) as 1! Also he found that LEN(STR$3.3) was given as 3, but
  2235. LEN(STR$4.3) was given as 11!
  2236. 1.09
  2237. The good news: You can do a STR$, use INSTR to find the position of the
  2238. decimal point and then use PRINT TAB( to position it correctly as in the
  2239. following example. (Thanks, APL!)
  2240. 1.09
  2241.  10 REM >$.AlignDP
  2242. 1.09
  2243.  20
  2244. 1.09
  2245.  30 REM ***************************
  2246. 1.09
  2247.  40 REM * Aligning your decimals  *
  2248. 1.09
  2249.  50 REM *  by Adrian Philip Look  *
  2250. 1.09
  2251.  60 REM *    28th April 1988      *
  2252. 1.09
  2253.  70 REM ***************************
  2254. 1.09
  2255.  80
  2256. 1.09
  2257.  90 REPEAT
  2258. 1.09
  2259. 100   random=RND(10000)-RND(1)*(RND
  2260. 1.09
  2261. (1)<.7)
  2262. 1.09
  2263. 110   PROCalign(20,random)
  2264. 1.09
  2265. 120 UNTIL FALSE
  2266. 1.09
  2267. 130 END
  2268. 1.09
  2269. 140
  2270. 1.09
  2271. 150 DEFPROCalign(x,number)
  2272. 1.09
  2273. :REM x = position of DP
  2274. 1.09
  2275. 160 number$=STR$(number)
  2276. 1.09
  2277. 170 dot=INSTR(number$,“.”)
  2278. 1.09
  2279. 180 IF dot=0 dot=LEN(number$)+1
  2280. 1.09
  2281. :REM i.e. no DP
  2282. 1.09
  2283. 190 IF dot=1 dot=0:REM leads with DP
  2284. 1.09
  2285. 200 PRINT TAB(x-dot);number
  2286. 1.09
  2287. :REM beware of (x-dot)<0
  2288. 1.09
  2289. 210 ENDPROC
  2290. 1.09
  2291. STOP PRESS. The original enquirer about this, Peter Trigg, has just come
  2292. back with:
  2293. 1.09
  2294. DEFPROCalign(x%,number)
  2295. 1.09
  2296. :REM x% = position of DP
  2297. 1.09
  2298. LOCAL length%
  2299. 1.09
  2300. length%=LEN(STR$(INT(number)))
  2301. 1.09
  2302. PRINT TAB(x%-length%);number
  2303. 1.09
  2304. ENDPROC
  2305. 1.09
  2306. This is somewhat neater and it seems to work OK. (This just emphasises
  2307. the need for sharing ideas — which is why we are setting up our “BASIC
  2308. utilities” section — see Help!!! section.)
  2309. 1.09
  2310. •   Music Editor. If you have a number of tunes that were prepared using
  2311. the Music Editor on the 0.2 or 0.3 Welcome discs. You will probably find
  2312. that all the voices are wrong — usually that the main tune was being
  2313. played on the percussion! The reason is that the Music Editor refers to
  2314. the voices by number only, so if the modules are in a different order,
  2315. the voices are likewise in a different order. It is however possible to
  2316. change the order of the modules by *RMKILLing the one which is higher in
  2317. the *ROMMODULES list then doing a *RMTIDY and then *RMREINITing the
  2318. module which you had just killed.
  2319. 1.09
  2320. •   Beware &36D!  Some BBC software (Apollo Mission for example) pokes
  2321. !877=0 (or !&36D=0). If you transfer this to the Archimedes you will
  2322. find that the system locks up and neither <ctrl-break> nor <reset> has
  2323. any effect. Even switching off is ineffective. The only way out is an
  2324. <R>-power-up. (Do it twice to restore the correct monitor-type setting.)
  2325. 1.09
  2326. •   File copying on a single drive. Are you having difficulty copying
  2327. files from one disk to another using just one disk drive? Is it that
  2328. when using the *COPY command with the Prompt option, the system prompts
  2329. for insertion of the destination disk but never recognises it? If so, 
  2330. issue the command *NODIR first. The system will then read the disk
  2331. directory every time it attempts to access a disk rather than storing
  2332. the directory in memory so that disks no longer need *MOUNTing. It is
  2333. possible to make the change permanent by doing *Configure NODIR.
  2334. 1.09
  2335. •   Boot files that work from desktop or with <shift-break> — set *OPT
  2336. 4,2 (Run) and create a BASIC program called !BOOT. You can then <shift-
  2337. break> if configured as language 3 or 4 (desktop or BASIC) or double
  2338. click the !boot icon from desktop.
  2339. 1.09
  2340. If necessary the !BOOT file can contain a line such as: 10*EXEC !BOOT1
  2341. 1.09
  2342. !BOOT1 contains tasks such as loading modules that need to be done from
  2343. supervisor mode.
  2344. 1.09
  2345. •   To run Master software, use *Alphabet Master and *Keyboard Master.
  2346. 1.09
  2347. •   *TypeFile again. After the ideas given last month, I knew there
  2348. should be an easier wayÉ Clifford Hoggarth has come up with:
  2349. 1.09
  2350. *Alias$TypeFile Echo ||B|M Type %0|M Echo ||C|M
  2351. 1.09
  2352. The point is that on first interpretation, || is turned into | so that
  2353. it become Echo |B which gives the ASCII 2 (ctrl-B) to turn on the
  2354. printer and Echo |C to do the reverse.
  2355. 1.09
  2356. •   System Delta Plus — The section in the manual on printer control
  2357. codes is not very clear. The following points may make it clearer: (1)
  2358. Clicking on <menu> on the printer control icon brings up a sub-menu
  2359. giving options for Bold, Compressed or Reset. (2) To select multiple
  2360. escape sequences, click <select> on the printer control icon, select the
  2361. Escape icon and enter the first code in the sequence, then press
  2362. <return>, enter the second code and again press <return>. Repeat this if
  2363. necessary and click on the OK icon when you have finished. E.g. to get
  2364. NLQ on an Epson , you want ESC120,1. So use: <select> Escape icon, type
  2365. 120, press <return>, type 1, press <return>, <select> OK icon.
  2366. 1.09
  2367. One limitation of the System Delta Plus package, as it stands, is that
  2368. you can only create four numeric total fields when producing a “List”.
  2369. The solution, according to Minerva Systems will be to purchase their
  2370. “Reporter” software — when it becomes available!
  2371. 1.09
  2372. •   Taxan Kaga printer (or the Canon equiv-alent) — there is a fairly
  2373. simple way of being able to switch the auto-line feed on and off, to
  2374. avoid problems with software that may or may not require the printer to
  2375. auto-line feed.
  2376. 1.09
  2377. All you do is to place a switch between two pins of the printer
  2378. connector. The pins to connect are pin 14 (auto-line feed) and any GND
  2379. line. When they are connected an auto-line is not performed.
  2380. 1.09
  2381. •   Ambiguous *-commands. If you have two modules loaded into the
  2382. Archimedes that use the same *-command name, you can call the command
  2383. required by: *<module name>: <command> <....> So, for example, if you
  2384. had two modules, ÔUtilityÕ and ÔToolkitÕ both of which have a CATALL
  2385. command, you can use either *Utility:CATALL or *Toolkit:CATALL to
  2386. differentiate between them.
  2387. 1.09
  2388.  
  2389. •   BASIC Editor. If you type “EDIT.” instead of just “EDIT”, it gets
  2390. you back into the editor at the same place you left it. This can be very
  2391. useful when editing long programs. It even seems to work if you load and
  2392. save other programs in the interim as long as you get the original
  2393. program back into memory. Also, you can say EDIT Fred and it will take
  2394. you to the first occurrence of the word “Fred” in the file. So, with
  2395. judicious use of REM statements, you can jump into the program at just
  2396. the right place every time. If you want to find DEFPROCfred, EDIT fred
  2397. will probably bring you to PROCfred rather than the definition itself,
  2398. but REM !FRED above the top of the procedure would allow you to type
  2399. EDIT !FRED (note, all uppercase, which is easier to type) to drop you
  2400. straight to the desired place in the program.
  2401. 1.10
  2402. •   Artisan — fast load and save. If you have typed in the Fastload/Save
  2403. module from the March issue of Archive, *COPY FastRm onto the Artisan
  2404. disk and then LOAD “ART3”, list line 270 and add *RMLOAD FastRm|M and
  2405. then re-save it. Now LOAD “ART5” change line 2540 to OSCLI“FastLoad ”+f$
  2406. and line 2620 to OSCLI”FastSave “+f$. Then re-save it. You now have a
  2407. new and improved disc facility for Artisan.
  2408. 1.10
  2409. •   305, 310, 410 or 440? Following on from the hint in the May issue
  2410. (page 7) itÕs all very well to know what the page size is, 8k or 32k,
  2411. but to differentiate between a 305 and a 310 or between a 410 and a 440,
  2412. you need to know how much memory is available. One way of doing this is
  2413. to set up a local error trap and do a *Configure Spritesize 128. If the
  2414. machine has 1 Mbyte or less it will generate a “Configure parameter too
  2415. big” error. If it still generates an error when you use *Configure
  2416. Spritesize 64 then the software knows it is running in a 305. We have
  2417. not had chance to check this on a 305 or a 410, so please will someone
  2418. let us know if it does not work.
  2419. 1.10
  2420. •   System DeltaPlus. If you want to use two drives, issue the following
  2421. two commands from the card index:
  2422. 1.10
  2423. *dir :1
  2424. 1.10
  2425. *set Delta$WPPrefix :0.$
  2426. 1.10
  2427. Then donÕt specify the drive number in the data file name.
  2428. 1.10
  2429. •   View 3 & Viewstore 1.1. Various folk are still having problems with
  2430. these. If so, try the following as suggested by Sean Kelly — thanks.
  2431. 1.10
  2432. Viewstore 1.1. Locations &ABE2, &ABE3 and &ABE4 should all be set to the
  2433. value &EA.
  2434. 1.10
  2435. View 3. Set locations &A8D6, &A8D7 and &A8D8 to the value &EA. Also,
  2436. there are four places where you get LDA#&82, JSR Osbyte (i.e. &A9, &82,
  2437. &20, &F4, &FF). This is used to check for the second processor on the
  2438. BBC. So to fool it, you have to change each of these to: LDX#&FF,
  2439. LDY#&FF, NOP. You can either do this by poking &A2, &FF, &A0, &FF, &EA
  2440. into each of the sets of locations: &8834 to &8838, &88D8 to &88DC,
  2441. &895C to &8960 and &AF8D to &AF91. (I checked these locations against
  2442. the B3.0 version in the Master 128Õs and it bore no resemblance to it.
  2443. Apparently it refers to the A3.0 version. Ed.)
  2444. 1.10
  2445. •   Improved sound. If you have the colour monitor that comes with the
  2446. Archimedes, you can use the Audio Input at the back of the monitor (a
  2447. phono socket) to take a signal from the Headphones output (3.5 mm stereo
  2448. jack) from the Archimedes. Just use one of the channels or combine them
  2449. with 100R resistors. (If youÕre not quite sure how to do this, weÕll try
  2450. to give more details next month.) This give a much better sound and
  2451. provides you with a volume control.
  2452. 1.10
  2453. Next two hints are from Peter KigginsÉ
  2454. 1.10
  2455. •   When using a SWI from BASIC which either takes or returns a string,
  2456. it is not necessary to use pointers to strings.  The SYS command knows
  2457. that a pointer has been returned by the SWI and copies the relevant text
  2458. into the string.  For example, instead of
  2459. 1.10
  2460. $TxtPtr%=Number$
  2461. 1.10
  2462. SYS“OS_ReadUnsigned”,FromBase%,TextPtr% TO ,,Decimal%
  2463. 1.10
  2464. you can use the more readable and easier
  2465. 1.10
  2466. SYS“OS_ReadUnsigned”,FromBase%,Number$ TO ,,Decimal%
  2467. 1.10
  2468. And to read the command line which started the program, all that’s
  2469. required is
  2470. 1.10
  2471. SYS “OS_GetEnv” TO Command_line$
  2472. 1.10
  2473. •   BASIC commands TWIN and TWINO can be used without Acorn’s (editor)
  2474. TWIN.  How?  When TWIN is executed, BASIC first converts the current
  2475. program from internal tokenised format to plain text format; then it
  2476. calls TWIN with the location of the text as a command line string.  So
  2477. all that is required is a program called TWIN which reads the command
  2478. line and saves the relevant chunk of memory:-
  2479. 1.10
  2480.  10 REM >twin
  2481. 1.10
  2482.  20 REM*** fails with very short pieces of text ***
  2483. 1.10
  2484.  30 SYS “OS_GetEnv” TO command_line$
  2485. 1.10
  2486.  40 posat%=INSTR(command_line$,“@”)
  2487. 1.10
  2488.  50 poscomma%=INSTR(command_line$,“,”,posat%)
  2489. 1.10
  2490.  60 possemic%=INSTR(command_line$,“;”,poscomma%)
  2491. 1.10
  2492.  70 start$=“&”+MID$(command_line$,posat%+1,poscomma%-(posat%+1))
  2493. 1.10
  2494.  80 finish$=“&”+MID$(command_line$,poscomma%+1,possemic%-(poscomma%+1))
  2495. 1.10
  2496.  90 INPUT“Enter file name: ” file$
  2497. 1.10
  2498. 100 OSCLI(“save ”+file$+“ ”+start$+“ ”+finish$)
  2499. 1.10
  2500. 110 OSCLI(“settype ”+file$+“ &FFF”)
  2501. 1.10
  2502. The point of all this is that the BASIC Editor can now be used to
  2503. produce text files — for wordprocessing, compiling, etc.
  2504. 1.10
  2505. •   Auto-Booting — some of the commercial auto-boot programs don’t take
  2506. into account the filing system! This can be very annoying if you have a
  2507. ROM podule and your system is set to start up in the RFS. The answer is
  2508. (i) the software developers should produce proper auto-boot programs; or
  2509. (ii) if you already have bought a program — put *CON.FILE.ADFS in auto-
  2510. boot program!
  2511. 1.10
  2512. Hard Disc Auto-Booting — some readers are lucky enough to have hard
  2513. discs. However, life with a hard disc is not all a bed of roses! Having
  2514. copied your application programs to the hard disc, you run into problems
  2515. with the auto-booting routines. Here is a one of many possible solu
  2516. tions. Indeed this program could be used for those of us with floppies,
  2517. who have more than one application on a disc.
  2518. 1.10
  2519.  10 REM >$.!BOOT
  2520. 1.10
  2521.  20 REM **************************
  2522. 1.10
  2523.  30 REM * Multiple  Auto-Booting *
  2524. 1.10
  2525.  40 REM * written by Adrian Look *
  2526. 1.10
  2527.  50 REM *     22nd June 1988     *
  2528. 1.10
  2529.  60 REM **************************
  2530. 1.10
  2531.  70
  2532. 1.10
  2533.  80 SYS “OS_Byte”,161,16 TO ,,misc_flags
  2534. 1.10
  2535.  90 auto_boot=(misc_flags AND %10000)
  2536. 1.10
  2537. 100 file$=“boot”
  2538. 1.10
  2539. 110 file=OPENIN(file$):CLOSE #file
  2540. 1.10
  2541. 120 IF file=0 THEN PROCmenu
  2542. 1.10
  2543. 130 file=OPENIN(file$)
  2544. 1.10
  2545. 140 INPUT #file,boot$
  2546. 1.10
  2547. 150 CLOSE #file
  2548. 1.10
  2549. 160 IF auto_boot THEN OSCLI(“REMOVE ”+file$)
  2550. 1.10
  2551. 170 OSCLI(“RUN ”+file$)
  2552. 1.10
  2553. 180 END
  2554. 1.10
  2555. 190
  2556. 1.10
  2557. 200 DEFPROCmenu
  2558. 1.10
  2559. 210 REM **** your own code ****
  2560. 1.10
  2561. 220 REM
  2562. 1.10
  2563. 230 REM should exit with file$
  2564. 1.10
  2565. 240 REM containing the filename
  2566. 1.10
  2567. 250 REM of the program to be run.
  2568. 1.10
  2569. 260 REM
  2570. 1.10
  2571. 270 REM e.g. PRINT #file,filename$
  2572. 1.10
  2573. 280 ENDPROC
  2574. 1.10
  2575. The program checks whether a file (file$) is on the disk. If it is, then
  2576. the program reads the filename contained in file$ and runs it! Other
  2577. wise, the program should create file$ — as indicated.
  2578. 1.10
  2579. This method also allows you to write library programs which will: create
  2580. file$ and then run the boot program. Thus by running these library files
  2581. you can also initiate your application programs — without the need for a
  2582. menu!
  2583. 1.10
  2584. •   Quazer Fix. If you are using Quasar 1.40, here is a cheat, (for
  2585. those who like such things!) which allows you to keep going a bit
  2586. longer. Firstly, *LOAD QuazCode 9000 and then rename Quazcode as, say,
  2587. OldCode. Now if you want to set the number of lives, you need to change
  2588. location &3D058. It should currently contain 2, so to change the number
  2589. of lives to, say 10, put ?&3D058=10. Now if you want to avoid being
  2590. killed when you collide, change the contents of location &3D90B from &E2
  2591. to &F2 by puting ?&3D90B=&F2. Finally, *SAVE QuazCode 9000 +36520.
  2592. 1.10
  2593. •Passwords if you want them. Quazer Passwords: 2 Lizards, 3 Spiders, 4
  2594. Pedantic, 5 Analysis, 6 Larkin, 7 Company, 8 Manual,9 Trading
  2595. 1.10
  2596. Hoverbod passwords: 2 Minervas, 3 SirBarry, 4 ZotyBlob, 5 Flumpies, 6
  2597. Squidgee, 7 Wobblies, 8 Posskett
  2598. 1.10
  2599.  
  2600. 1.10
  2601. The following Hints & Tips were sent in by Mike Harrison (of Watford
  2602. Digitiser fame). HeÕs also sent us various other bits of information
  2603. which appear elsewhere in this issue and the next issue. Many thanks
  2604. Mike.
  2605. 1.10
  2606. Writing modules
  2607. 1.10
  2608. (Ref. issue 5, page 45) SWIs in modules must always use the ‘X’ version
  2609. of the SWI and, where appropriate, check for an error and exit,
  2610. preserving the value of r0 returned by the SWI (i.e. don’t restore the
  2611. old value of R0 if it had been saved). e.g.
  2612. 1.10
  2613. .a_module_routine
  2614. 1.10
  2615. STMFD R13!,{r0-2 ,14} \or however many registers you need to save
  2616. 1.10
  2617. SWI “XOS_SomethingOrOther”
  2618. 1.10
  2619. STRVS R0,[R13] \overwrite old r0 with error pointer
  2620. 1.10
  2621. LDMVSFD R13!,{r0-2 ,PC}
  2622. 1.10
  2623. \ the last 2 statements could alternatively have been :
  2624. 1.10
  2625. \
  2626. 1.10
  2627. \ ADDVS R13,R13,#4 : LDMVSFD R13!,{r1-2 ,PC}
  2628. 1.10
  2629. For short routines, or where several SWIs are used, the following is
  2630. neater..
  2631. 1.10
  2632. .a_short_routine
  2633. 1.10
  2634. STMFD R13!,{r0-5 ,14}
  2635. 1.10
  2636. SWI “XOS_SomeSwi”
  2637. 1.10
  2638. SWIVC “XOS_SomethingElse”
  2639. 1.10
  2640. SWIVC “XOS_YetAnotherSwi”
  2641. 1.10
  2642. STRVS R0,[R13]
  2643. 1.10
  2644. LDMFD R13!,{r0-5 ,PC}
  2645. 1.10
  2646. In this example, all code after first SWI should be conditional on V
  2647. clear, so if any SWI gives an error, the code will ‘drop through’ to the
  2648. end.
  2649. 1.10
  2650. Remember that some SWIs may return errors you don’t expect — e.g.
  2651. OS_WriteC could return an error when output is *Spooled, setting the
  2652. screen mode could give ‘Bad Mode’ etc. — some thought is required to
  2653. ensure that module code will be reliable in all environments.
  2654. 1.10
  2655. When setting up offsets in headers and command tables, it is much easier
  2656. to specify them when using offset assembly (OPT 4/6/7) — set O% to the
  2657. code buffer, and P% to 0. Offsets can then be included directly with
  2658. EQUD (e.g. EQUD moduletitle). Warning — if you are still using Basic
  2659. 1.00, there is a bug in ALIGN when using offset assembly. Version 1.02
  2660. is OK.
  2661. 1.10
  2662. The following assembler macro is useful when building keyword tables in
  2663. modules (it assumes the use of offset assembly, as described above):
  2664. 1.10
  2665. DEF FNcommand(I%,A$)
  2666. 1.10
  2667. [ OPTpass : EQUS A$ : EQUB0 :
  2668. 1.10
  2669. ALIGN
  2670. 1.10
  2671. EQUD EVAL(A$)
  2672. 1.10
  2673. EQUD I%
  2674. 1.10
  2675. EQUD EVAL(A$+“syntax”)
  2676. 1.10
  2677. EQUD EVAL(A$+“help”)
  2678. 1.10
  2679. ]:=pass
  2680. 1.10
  2681. OPT FNcommand(“NewCmd”,N) will create a table entry, using the labels
  2682. .NewCmd .NewCmdhelp and .NewCmdsyntax (N is the information word).
  2683. 1.10
  2684. Note that ‘pass’ is the name of the pass variable — change this if you
  2685. use a different name.
  2686. 1.10
  2687. Podule manager/Clock slowdown
  2688. 1.10
  2689. (Ref. issue 7, page 44) The problem here is that SWIs are passed to
  2690. modules with interrupts disabled, so if the SWI takes a significant
  2691. amount of time to complete, the clock will slow down (the mouse pointer
  2692. will also become sluggish). I can’t see why the podule manager should
  2693. need interrupts off, so it’s probably an unintended ‘feature’ — SWI code
  2694. which takes time to execute SHOULD enable interrupts, unless they have
  2695. to be off. (The digitiser module only runs with interrupts off when
  2696. absolutely necessary!) When interrupts have been disabled for signifi
  2697. cant amounts of time, the seconds count of the real-time clock gets out
  2698. of step with the minutes, which then don’t roll over at 59 secs — this
  2699. looks weird if you don’t know about it!
  2700. 1.10
  2701. System Devices
  2702. 1.10
  2703. (Ref. issue 6, page 41) There is a very interesting feature, which I
  2704. haven’t seen documented, concerning device oriented filing systems. When
  2705. you set the printer type using *FX5,n where n is greater than 2, the OS
  2706. looks for a system variable called printertype$n — n being the value
  2707. used for FX5. This variable holds the name of the output file or device
  2708. to which printer output should be sent. The Econet module, NetPrint,
  2709. uses this to set printer type 4 to “netprint:”. What happens is that
  2710. when you do <ctrl-B>, a file is opened, with the name given in this
  2711. system variable, and <ctrl-C> closes the file. While this would normally
  2712. send output to a hardware device, it can also use the name of a normal
  2713. file; e.g.
  2714. 1.10
  2715. *set printertype$5 outfile
  2716. 1.10
  2717. *fx5 5
  2718. 1.10
  2719. Will cause subsequent printer output to be written to the file “outfile”
  2720. — handy for debugging, and for saving data to print on other machines.
  2721. Note that this will only work if a program does VDU2, sends ALL its
  2722. output, then does VDU3. If it keeps turning the printer on and off all
  2723. the time with VDU2/3, only the last part of the output will be in the
  2724. file, as VDU2 re-opens the file, discarding its previous contents.
  2725. (Econet users know only too well the problems caused by software not
  2726. handling the printer correctly!)
  2727. 1.10
  2728. Just for fun, try :
  2729. 1.10
  2730. *set printertype$5 vdu:
  2731. 1.10
  2732. *fx5 5
  2733. 1.10
  2734. <Ctrl-B>
  2735. 1.10
  2736. All vdu output will appear ttwwiiccee!! — once via the normal route, and
  2737. again via the printer stream.
  2738. 1.10
  2739. Use of SYS
  2740. 1.10
  2741. (Ref. issue 9, page 47) The following is a bomb-proof version of OSCLI
  2742. in BASIC, which will report errors without entering BASICs error handler
  2743. (it can also be used for other SWIs — e.g. OS_File to trap filing errors
  2744. neatly)
  2745. 1.10
  2746. DEFPROCoscli(OS$)
  2747. 1.10
  2748. LOCAL flag%,error%
  2749. 1.10
  2750. SYS“XOS_CLI”,OS$ TO error% ; flag%
  2751. 1.10
  2752. IF flag% AND 1 THEN P.“Error : ”;:SYS“OS_Write0”,error%+4
  2753. 1.10
  2754. REM the error number can be read using !error%
  2755. 1.10
  2756. ENDPROC
  2757. 1.10
  2758. It works by reading back the V flag and error pointer returned by the X
  2759. version of the SWI
  2760. 1.10
  2761. TWIN
  2762. 1.10
  2763. (Ref. issue 7, page 7) You can warm start Twin using *Twin -warm, using
  2764. the same version of Twin, of course — *GO may cause problems if the code
  2765. has been corrupted, (or you’ve forgotten the address!). There is a bug
  2766. in all the versions of Twin I’ve seen (I’m not sure what version has
  2767. been released), which means that when exiting from TWIN to BASIC, the
  2768. event vector is messed up, so if you overwrite the address where Twin
  2769. was run, and enable events, the machine crashes. This can be avoided by
  2770. doing QUIT, *BASIC, and OLD.
  2771. 1.10
  2772. In one issue, there was a tip for entering ARMBE automatically at the
  2773. line in error — here’s a similar routine if you prefer using TWIN to
  2774. edit BASIC programs — It uses the TWINO8 option to strip line numbers
  2775. (which you don’t need to use, DO YOU!!). If the error wasn’t Escape,
  2776. pressing <Y> will enter TWIN at the line where the error occurred. Note
  2777. that it assumes lines are numbered in 10s — this will be the case if the
  2778. program has been edited in TWIN without line numbers, but not if lines
  2779. have been inserted/deleted from the BASIC prompt — in this case, enter
  2780. TWIN, and exit again, or do RENUMBER.
  2781. 1.10
  2782. ON ERROR PROCERR
  2783. 1.10
  2784. ...
  2785. 1.10
  2786. ...
  2787. 1.10
  2788. DEFPROCERR
  2789. 1.10
  2790. REPORT:PRINT“ at line ”ERL
  2791. 1.10
  2792. IF ERR=17 END
  2793. 1.10
  2794. PRINT“EDIT ?”:IF GET$=“Y” ELSE END
  2795. 1.10
  2796. *FX138 0 129
  2797. 1.10
  2798. *FX138 0 128
  2799. 1.10
  2800. FORA%=1 TO LEN(STR$(ERL DIV10))
  2801. 1.10
  2802. SYS 6,138,,ASC(MID$(STR$(ERL DIV10),A%,1))
  2803. 1.10
  2804. NEXT:*FX138 0 13
  2805. 1.10
  2806. END
  2807. 1.10
  2808. Hidden software
  2809. 1.10
  2810. (Ref. issue 9, page 4)  Take a close look at the digitiser module!
  2811. 1.10
  2812.  
  2813. Hints & Tips
  2814. 1.11
  2815. •   *COMPACT − The User Guide says that *COMPACT “moves files around on
  2816. the disc, collecting all the free space into a continuous block”.
  2817. However, if you have a disc that has several gaps you will find that you
  2818. need several compactions. One disc which had 5 gaps in the FS map had to
  2819. be compacted eight times before the map showed only a single gap. (See
  2820. review of R.A.Engineering’s Utilities, page ?????)
  2821. 1.11
  2822. •   *COPY − When copying multiple files using wildcards, you must ONLY
  2823. specify the directory into which to copy and not try to specify the
  2824. actual file name in any way e.g. if you want to copy files PROGA, PROGB,
  2825. PROGC etc from the “BASIC” directory into the “BACKUP” directory, use
  2826. *COPY $.BASIC.PROG* $.BACKUP.* but if you try to use *COPY $.BASIC.PROG*
  2827. $.BACKUP.PROG* it won’t work. This is not desperately clear in the User
  2828. Guide and I’ve only just worked out why 90% of my attempts to do
  2829. wildcard copies have not worked!
  2830. 1.11
  2831. •   CAPS LOCK − Another thing which is obvious if you know about it is
  2832. that you can set up the keyboard to print upper case normally but then
  2833. go into lower case when you press <shift>. This can be done either by
  2834. *Configure SHCAPS if you want it to start up in that mode (or CAPS or
  2835. NOCAPS if you don’t) or by holding the shift key down and pressing and
  2836. releasing the Caps Lock key.
  2837. 1.11
  2838. •   CHAINing programs − In response to our complaint in last month’s Bug
  2839. or Feature that programs chaining one another cannot be called from
  2840. drive 1 using the desktop, Philip Colmer of Acorn’s Customer Support
  2841. Department tells us that it is definitely a feature. There are a number
  2842. of ways of avoiding the problem. Firstly, you could reference files by
  2843. disc name, so we could CHAIN“:ProgDisc.$.Progs.Nextprog” or whatever.
  2844. Alternatively, you could use the fact that when you run a BASIC program
  2845. in drive 1 from the desktop, it generates a command something like
  2846. *basic −quit “ADFS::1.$.Progs.FirstProg”. You could then use OS_GetEnv
  2847. to read the command string and find out where the program has been
  2848. called from. Thridly, have a look at PC.PC from the 1.20 version of the
  2849. PC emulator to see an intelligent (incredibly so!) boot-up program which
  2850. has been very carefully commented to enable you to modify it for your
  2851. own use.
  2852. 1.11
  2853. •   Auto-booting − Again from Philip Colmer comes the suggestion that
  2854. you should use the PC.PC program to boot up applications from within
  2855. directories on the hard disc. The program uses legal OS calls instead of
  2856. re-configuring. It does a *DIR and then runs the program specified. The
  2857. only restriction on it is that it cannot change the system sprite size
  2858. but, he points out, if programs were written properly, they would not be
  2859. using the system sprite area!
  2860. 1.11
  2861. •   System Devices − You can treat devices as files, e.g.
  2862. C%=OPENOUT(“NETPRINT:”). This is particularly useful in the example
  2863. given on page 9 last month because you can now open a channel to the
  2864. network printer, send some stuff to it when you are ready (using BPUT
  2865. #C%) and when everything is done, close the ‘file’ (CLOSE#0) and it will
  2866. then be printed! (This also came from Philip Colmer − Thanks PC! −
  2867. Funny, you know, I always thought that PC stood for Personal Computer!
  2868. Ed.)
  2869. 1.11
  2870. The following Hints were prepared by Adrian LookÉ
  2871. 1.11
  2872. •   Smooth Scrolling − Using VDU 23,7 you can scroll the current text
  2873. window up, down, left, or right. Horizontally, the picture can be
  2874. scrolled by one byte, but vertically it can only be scrolled by one
  2875. character cell. This can produce a smooth scroll by placing a WAIT (for
  2876. the vertical sync pulse) command before the VDU 23,7. If any further
  2877. delay is implemented then the picture shudders as it scrolls. This means
  2878. that a slow smooth scroll cannot be used. The answer is to redefine the
  2879. screen base address manually (as we used to do on the BBC). This is done
  2880. using ‘OS_Word’ &16.
  2881. 1.11
  2882. DIM block% 4
  2883. 1.11
  2884. :
  2885. 1.11
  2886. block%?0=type
  2887. 1.11
  2888. block%!1=offset
  2889. 1.11
  2890. WAIT
  2891. 1.11
  2892. SYS “OS_Word”,&16,block%
  2893. 1.11
  2894. “type”   : when 1 − base used by VDU drivers (i.e. screen updated)
  2895. 1.11
  2896.    : when 2 − base used by hardware (i.e. screen displayed)
  2897. 1.11
  2898. “offset”   : from the address of the base of the screen buffer to the
  2899. start of the screen display.
  2900. 1.11
  2901. The following example program should help to make it clearer.
  2902. 1.11
  2903.  10 REM >scrolling
  2904. 1.11
  2905.  20
  2906. 1.11
  2907.  30 REM **************************
  2908. 1.11
  2909.  40 REM *   Scrolling Screens??  *
  2910. 1.11
  2911.  50 REM * written by Adrian Look *
  2912. 1.11
  2913.  60 REM *     21st July 1988     *
  2914. 1.11
  2915.  70 REM **************************
  2916. 1.11
  2917.  80
  2918. 1.11
  2919.  90 MODE 0:OFF
  2920. 1.11
  2921. 100 DIM block% &10
  2922. 1.11
  2923. 110 count=0
  2924. 1.11
  2925. 120
  2926. 1.11
  2927. 130 PRINTTAB(3,15);“Some text”
  2928. 1.11
  2929. 140
  2930. 1.11
  2931. 150 REPEAT
  2932. 1.11
  2933. 160   PROCscroll(1)
  2934. 1.11
  2935. 170 UNTIL 0
  2936. 1.11
  2937. 180 END
  2938. 1.11
  2939. 190
  2940. 1.11
  2941. 200 DEFPROCscroll(speed)
  2942. 1.11
  2943. 210 PROCinfo
  2944. 1.11
  2945. 220 add=x/m
  2946. 1.11
  2947. 230 IF SGN(count)>0 THEN speed=-speed
  2948. 1.11
  2949. 240 REPEAT
  2950. 1.11
  2951. 250   block%?0=2
  2952. 1.11
  2953. 260   block%!1=add*count
  2954. 1.11
  2955. 270   WAIT
  2956. 1.11
  2957. 280   SYS “OS_Word”,22,block%
  2958. 1.11
  2959. 290   count+=speed
  2960. 1.11
  2961. 300 UNTIL add*count>x*y/m+4160 OR count<0
  2962. 1.11
  2963. 310 ENDPROC
  2964. 1.11
  2965. 320
  2966. 1.11
  2967. 330 DEFPROCinfo
  2968. 1.11
  2969. 340 SYS “OS_ReadModeVariable”,MODE,4 TO ,,x
  2970. 1.11
  2971. 350 x=4-x:x=8*(2^x)*10
  2972. 1.11
  2973. 360 SYS “OS_ReadModeVariable”,MODE,5 TO ,,y
  2974. 1.11
  2975. 370 y=3-y:y=y*256
  2976. 1.11
  2977. 380 SYS “OS_ReadModeVariable”,MODE,3 TO ,,c
  2978. 1.11
  2979. 390 CASE c OF
  2980. 1.11
  2981. 400   WHEN 1  : m=8
  2982. 1.11
  2983. 410   WHEN 3  : m=4
  2984. 1.11
  2985. 420   WHEN 15 : m=2
  2986. 1.11
  2987. 430   WHEN 63 : m=1
  2988. 1.11
  2989. 440 ENDCASE
  2990. 1.11
  2991. 450 ENDPROC
  2992. 1.11
  2993.  
  2994. 1.11
  2995. •   Desktop Utilities − The desktop is essentially a skeleton program
  2996. which allows the programmer to install his/her own icons, windows,
  2997. menus, commands, etc, which the DeskTop will then operate. This is done
  2998. with a very clever set of FN’s. for example:
  2999. 1.11
  3000. PROCinstall(“adrian”)
  3001. 1.11
  3002. :
  3003. 1.11
  3004. DEFPROCinstall(file$)
  3005. 1.11
  3006. INSTALL file$
  3007. 1.11
  3008. void=EVAL(“FNinstall_file_”+file$)
  3009. 1.11
  3010. ENDPROC
  3011. 1.11
  3012. This means that by EVALuating a string the DeskTop can call any file-
  3013. specific function. In the case above, FNinstall_file_adrian will be
  3014. called. By using this system, any command can be ‘installed’ or even
  3015. replaced. Explaining or even listing the functions and procedures
  3016. available in the DeskTop program is not really possible in the magazine.
  3017. However, bearing in mind the methods used, you will find before long you
  3018. can write some very useful tools for the DeskTop. It should even
  3019. possible to completely re-write the it! As an example, here is a program
  3020. which will allow you to use star commands. Don’t forget to *SETTYPE
  3021. ‘filename’ FE0 to indicate that the program is a desktop utility (We
  3022. have included several other utilities on the program disk).
  3023. 1.11
  3024.  10 REM >star
  3025. 1.11
  3026.  20
  3027. 1.11
  3028.  30 REM *******************************
  3029. 1.11
  3030.  40 REM *  Star Commands for Desk Top *
  3031. 1.11
  3032.  50 REM *    written by Adrian Look   *
  3033. 1.11
  3034.  60 REM * original idea Denis Howlett *
  3035. 1.11
  3036.  70 REM *******************************
  3037. 1.11
  3038.  80
  3039. 1.11
  3040.  90 DEFFNinstall_file_star
  3041. 1.11
  3042. 100 file=OPENIN(filehandler_path$+“.istar”):CLOSE #file
  3043. 1.11
  3044. 110 IF file=0 THEN ERROR 1,“Can’t find icon file ‘istar’”
  3045. 1.11
  3046. 120 OSCLI(“SMERGE ”+filehandler_path$+“.istar”)
  3047. 1.11
  3048. 130
  3049. PROCsys_addtoiconbar(“star”,“command”,&301A,icon_fgcol,icon_bgcol,48)
  3050. 1.11
  3051. 140 SYS “Wimp_ForceRedraw”,-1,0,0,1279,100
  3052. 1.11
  3053. 150 =0
  3054. 1.11
  3055. 160
  3056. 1.11
  3057. 170 DEFFNaction_star
  3058. 1.11
  3059. 180 PROCstar_command(5,5,75,25,2,1)
  3060. 1.11
  3061. 190 =0
  3062. 1.11
  3063. 200
  3064. 1.11
  3065. 210 DEFPROCstar_command(x0,y0,x1,y1,bx,by)
  3066. 1.11
  3067. 220 *POINTER 0
  3068. 1.11
  3069. 230 VDU 26,4,28,x0,y1,x1,y0
  3070. 1.11
  3071. 240 y0=31-y0:y1=31-y1
  3072. 1.11
  3073. 250 gx=x0*16-bx*8:dx=(x1-x0)*16+bx*16+16
  3074. 1.11
  3075. 260 gy=y1*32-by*16:dy=(y0-y1)*32+by*32+32
  3076. 1.11
  3077. 270 GCOL 0,&4:RECTANGLE FILL gx-4,gy-4,dx+8,dy+8
  3078. 1.11
  3079. 280 GCOL 0,&0:RECTANGLE FILL gx,gy,dx,dy
  3080. 1.11
  3081. 290 LOCAL ERROR
  3082. 1.11
  3083. 300 REPEAT
  3084. 1.11
  3085. 310   ON ERROR LOCAL PRINT REPORT$
  3086. 1.11
  3087. 320   *FX 4,0
  3088. 1.11
  3089. 330   INPUT“*”star$
  3090. 1.11
  3091. 340   *FX 4,1
  3092. 1.11
  3093. 350   OSCLI(star$)
  3094. 1.11
  3095. 360 UNTIL star$=“”
  3096. 1.11
  3097. 370 RESTORE ERROR
  3098. 1.11
  3099. 380 SYS “Wimp_ForceRedraw”,-1,gx-4,gy-4,gx+dx+8,gy+dy+8
  3100. 1.11
  3101. 390 VDU 26,5
  3102. 1.11
  3103. 400 *FX 21,9
  3104. 1.11
  3105. 410 *POINTER
  3106. 1.11
  3107. 420 ENDPROC
  3108. 1.11
  3109. N.B. (i) You will need a STAR shaped icon called ‘command’, saved as
  3110. ‘istar’. However, if you want to test the program before designing an
  3111. icon, skip lines 100-120 and change “command” in line 130 to “unknown”.
  3112. 1.11
  3113.   (ii) Because the DeskTop uses the filename of the utility as a ‘seed’,
  3114. it important that the utility’s filename be consistent with its
  3115. procedure names. For example: if you rename ‘star’ to ‘command’ then the
  3116. DeskTop will look for FNaction_command instead of FNaction_star, so you
  3117. will get an error!
  3118. 1.11
  3119. •   Making the Print Key Save − Last month it was suggested in Neil
  3120. Strong’s article about making the print key print that a slight
  3121. modification of the program could make it save screen shots to the disc
  3122. using SCREENSAVE “$.pic” instead of HARDCOPYFX. However, this limits you
  3123. to one screen shot at a time (otherwise you will overwrite your last
  3124. one). If we use the system variables and update the ‘print key’ program
  3125. we can get it to save a screen called ‘$.scr0’, followed by, ‘$.scr1’,
  3126. ‘$.scr2’..etc!
  3127. 1.11
  3128. 871 adr r0,command1
  3129. 1.11
  3130. 872 swi “OS_CLI”
  3131. 1.11
  3132. 920 equs “ScreenSave scr<file>”  ; FastSave even!#?
  3133. 1.11
  3134. 941 .command1
  3135. 1.11
  3136. 942 equs “SetEval file file+1”
  3137. 1.11
  3138. 943 EQUB 0
  3139. 1.11
  3140. 944 ALIGN
  3141. 1.11
  3142. 1020 OSCLI(“SetEval file 0”)
  3143. 1.11
  3144. 1030 END
  3145. 1.11
  3146. If you wish to (re)set the ‘file count’ to n, then just type:
  3147. 1.11
  3148. *SETEVAL file n
  3149. 1.11
  3150. •   SpellMaster Browse in Wordwise Plus − If you have Spell-Master and
  3151. Wordwise Plus you can very easily write a two line segment program which
  3152. will call the browse window. i.e.
  3153. 1.11
  3154. *BROWSE
  3155. 1.11
  3156. DISPLAY
  3157. 1.11
  3158. Thus if the program were in segment zero you could press <shift><print>
  3159. while editing your text and check your spelling using the browse window.
  3160. This obviously opens up all sorts of possibilities for Wordwise Plus to
  3161. use Spell Master’s facilities.
  3162. 1.11
  3163.  
  3164. •   PipeDream − For those who have not used View etc and who have
  3165. therefore not had to fight printer drivers, the following may be useful:
  3166. 1.12
  3167. The printer driver is loaded on initialisation and when <Alt><P><D> is
  3168. used, but NOT when a document is printed, so any changes made to a
  3169. printer driver are not acted upon until either of these events. It’s
  3170. obvious really, but if you haven’t registered the fact, it could cause a
  3171. lot of confusion.
  3172. 1.12
  3173. For those who wish to use bold throughout a document, (e.g. for
  3174. producing something on a dot-matrix printer that will go through a Fax
  3175. machine) it would seem an obvious solution to put markers at the
  3176. beginning and end of the document and make it all bold highlight.
  3177. However, this is not a good idea because your printer will have to cope
  3178. with double printing each word, one word at a time! Instead, change the
  3179. printer driver so that the bold highlight is NOT cancelled at the end of
  3180. a line. i.e. change the Y to an N and either send the necessary ESC
  3181. sequence in the PON line or put a highlight 2 at the very start of your
  3182. text.
  3183. 1.12
  3184. •   Transferring character definitions − If you have files produced by
  3185. the CHARDES program from the Master Welcome disc (mentioned last month,
  3186. page 34) here is a little BASIC program to run the files on the
  3187. Archimedes:
  3188. 1.12
  3189.  10 REM >ThinChar
  3190. 1.12
  3191.  20 CLS : INPUT “FileName ”;A$
  3192. 1.12
  3193.  30 OSCLI (“LOAD ”+A$+“ 12800”)
  3194. 1.12
  3195.  40 FOR I=127 TO 32 STEP -1
  3196. 1.12
  3197.  50 VDU23,I
  3198. 1.12
  3199.  60 VDU(?(&12844+I-32))
  3200. 1.12
  3201.  70 VDU(?(&128A4+I-32))
  3202. 1.12
  3203.  80 VDU(?(&12904+I-32))
  3204. 1.12
  3205.  90 VDU(?(&12964+I-32))
  3206. 1.12
  3207. 100 VDU(?(&129C4+I-32))
  3208. 1.12
  3209. 110 VDU(?(&12A24+I-32))
  3210. 1.12
  3211. 120 VDU(?(&12A84+I-32))
  3212. 1.12
  3213. 130 VDU(?(&12AE4+I-32))
  3214. 1.12
  3215. 140 NEXT
  3216. 1.12
  3217. •   Quazer (again). The fix for Quazer 1.42 is ?&3D090=N¼ of lives,
  3218. ?&3D98F=&F2, *SAVE Quazcode 9000 +365AC, *settype Quazcode FF8. •  
  3219. Printing in binary − PRINT ~number% prints number% in hexadecimal but
  3220. there isn’t an equivalent for printing in binary. However, there are SYS
  3221. commands that will do it for you. The following program illustrates the
  3222. use of SYS &E0 which converts a number to a four byte binary number
  3223. string (SYS’s &DF, DE and DD convert to 3, 2 and 1 byte binary numbers).
  3224. 1.12
  3225. The only other point of interest in the program is the way that the
  3226. leading zeros are stripped off by lines 190, 200 (which can be omitted,
  3227. of course, if you want the leading zeros!). The INSTR command finds the
  3228. position of the first “1” starting from the left hand end of the string,
  3229. take off one to give the number of zeros to be removed. The LEFT$
  3230. command at line 200 turns those zero characters into the character set
  3231. by pad$. (This illustrates the fact that you can use string functions on
  3232. the left hand side of an assignment.) If pad$ is a space character, the
  3233. binary numbers produced will all be the same length and so will be right
  3234. justified but if you want the strings left justified, you can set pad$
  3235. to CHR$0. (An alternative for left justification would be to use
  3236. numb$=RIGHT$(numb$,32-n%).)
  3237. 1.12
  3238.  10 REM > BinPrint
  3239. 1.12
  3240.  20
  3241. 1.12
  3242.  30 pad$=CHR$0 :REM left justif’n
  3243. 1.12
  3244.  40 pad$=“ ” : REM right justif’n
  3245. 1.12
  3246.  50 OS_ConvertBinary4=&E0
  3247. 1.12
  3248.  60
  3249. 1.12
  3250.  70 REPEAT
  3251. 1.12
  3252.  80   INPUT “Number? ”number$
  3253. 1.12
  3254.  90   number%=EVAL(number$)
  3255. 1.12
  3256. 100   A$=FNbinconvert(number%)
  3257. 1.12
  3258. 110   PRINT A$
  3259. 1.12
  3260. 120 UNTIL0
  3261. 1.12
  3262. 130
  3263. 1.12
  3264. 140 DEF FNbinconvert(numb%)
  3265. 1.12
  3266. 150 LOCAL numb$,n%
  3267. 1.12
  3268. 160 
  3269. 1.12
  3270. 170 SYS OS_ConvertBinary4,numb%,
  3271. 1.12
  3272. 32,numb$ TO numb$
  3273. 1.12
  3274. 180
  3275. 1.12
  3276. 190 n%=INSTR(numb$,“1”)-1
  3277. 1.12
  3278. 200 LEFT$(numb$,n%)=STRING$(n%
  3279. 1.12
  3280. ,pad$)
  3281. 1.12
  3282. 210 =numb$ 
  3283. 1.12
  3284. •   Hard Disc Head Parking − Don’t forget that if the RFS is selected,
  3285. it will accept the *BYE command but it will not park the heads on the
  3286. drive. You have to be in ADFS.
  3287. 1.12
  3288. •   Screenload/save − It is interesting to compare the time taken to
  3289. save and load screens using *screensave and *screenload with the time
  3290. taken to define the whole screen as a sprite and save it using *Ssave or
  3291. load it with *Sload. In all modes there is considerable saving e.g.
  3292. 1.12
  3293.    Mode1   Mode12   Mode 15
  3294. 1.12
  3295.   *Screensave(load)   7(4)   25(18)   52(38)
  3296. 1.12
  3297.   *Ssave(load)   1(<1)   3(3)   7(6)
  3298. 1.12
  3299. •   Libraries and *mountÉ If you *mount a disc, the library from the
  3300. previous disc remains in memory. For those with a single drive, this may
  3301. seem a nuisance but the reason the library is not changed is that you
  3302. can have a library on one drive and shove discs in and out of the other
  3303. drive without losing the library − particularly important with hard
  3304. discs. Obviously you could reselect the library with *library $.Library
  3305. but it is much easier to use *bye. That way, you don’t even have to use
  3306. *mount.
  3307. 1.12
  3308. •   Reliable RS423 transfer from BBC’s. This is mostly just reiterating
  3309. what has gone before, but to transfer reliably from BBC to Archimedes at
  3310. 9,600 baud you need to [1] use the 1.24 serial patch (on Archive program
  3311. disc 7) [2] Set *Configure DATA 5 (i.e. 8 data bits and 1 stop bit which
  3312. is the default on the BBC) and [3] connect the BBC’s RTS output to the
  3313. Archimedes’ DSR input (pin 6) instead of the CTS input (pin 8) and link
  3314. pins 1, 4 and 8 together.
  3315. 1.12
  3316. •   View A3.0 Further to the patches given in July issue (Vol. 1.10 page
  3317. 6) Richard House reckons that instead of using &FF’s in the various
  3318. locations you should use &00’s. (If someone has a working version of
  3319. A3.0, please send it in so that we can add it to our collection of
  3320. working patches!)
  3321. 1.12
  3322. •   Viewstore 1.1 − Following on from the July Hints & Tips, not that
  3323. not only should &ABE2, 3 and 4 be set to &EA, but also, the LDA #&82,
  3324. JSR OSBYTE (&A9, &82, &20, &F4, &FF) routines need to be altered as with
  3325. View A3.0. These occur at locations &A256 − A25A, &AA22 − AA26 and &AB98
  3326. − AB9C. The code required in each of these locations is &A2, &00, &A0,
  3327. &00, &EA. (LDX #&00, LDY #&00, NOP). (If you can’t cope with these
  3328. technicalities, send us a disc with Viewstore 1.1 on it and we’ll modify
  3329. it for you.)
  3330. 1.12
  3331. •   Correct Nesting? To check that the nesting of loops, IF’s and CASE’s
  3332. is correct within a program, use LISTO2 and LIST the program. If at the
  3333. end of the program, the final line has two or more spaces after the line
  3334. number, you’ve got an incorrect nesting somewhere. To check through,
  3335. there should be no spaces between line numbers and DEFPROC’s, DEFFN’s or
  3336. ENDPROC’s.
  3337. 1.12
  3338. •   Marconi Trackerball. Archimedes’ mouse’s tail can apparently be
  3339. removed, so says Mr T A Doncaster, and plugged into an identical
  3340. connector within the Marconi RB2/PC-1 tracker ball and all works without
  3341. any further fiddling about. Watch that the supply polarity is correct
  3342. though.
  3343. 1.12
  3344. •   Readable zeros. In InterSheet in particular, I find the slashed-
  3345. zeros misleading − they can easily be mistaken for eights. If you re-
  3346. program the zero character using a VDU23 command you can avoid the
  3347. confusion. It does increase the possibility of confusion with a capital-
  3348. O but that is far less important in spreadsheet work than confusion with
  3349. 8. So, I store the following program in the RAM on the RFS and call it
  3350. up with *IS<return>:
  3351. 1.12
  3352. 10 REM >RFS:IS
  3353. 1.12
  3354. 20 VDU23,48,60,102,102,102,102,
  3355. 1.12
  3356. 102,60,0
  3357. 1.12
  3358. 30 CHAIN “RFS:ISHEET”
  3359. 1.12
  3360. No doubt you could modify this program if you wanted to use the same re-
  3361. programmed zero character with other spreadsheet software.
  3362. 1.12
  3363. •   Computer salutions. R.E.Boldero, in the July edition, asked for a
  3364. way of getting his computer to greet him each time he switched on. The
  3365. next hint shows a partial solution.
  3366. 1.12
  3367. •   RFS Boot file − If you use a ROM podule with battery backup, you can
  3368. create a boot file that runs in the RFS and sets up all sorts of
  3369. goodies. I used to have a BASIC program called !BOOT which set up all
  3370. sorts of things on power-up or <ctrl-break> but if you are developing a
  3371. BASIC program, get stuck and press <ctrl-break>, you lose the program
  3372. because it is replaced by the boot program!!!!! After Adrian had fallen
  3373. into this trap a few times when using my computer, he developed the
  3374. following rather ingenious (not to say devious) EXECable boot program.
  3375. (*Configure Filesystem RFS, *Configure Boot and *OPT 4,3 in the RFS.)
  3376. 1.12
  3377. We have since added a facility for making Arthur talk to you a bit more
  3378. politely, from an idea sent in by Chris Hayes.
  3379. 1.12
  3380. To create the boot file, I start with the following Wordwise Plus file
  3381. which is then spooled as “RFS:!BOOT”.  (The line numbers are purely for
  3382. discussion purposes.)
  3383. 1.12
  3384.  1 <gr>LL160<gr>PC “~”
  3385. 1.12
  3386.  2 VDU21
  3387. 1.12
  3388.  3 VDU6,11,32,32,32,32,32,32,21
  3389. 1.12
  3390.  4 VDU6,19,0,4,0,0,0,21
  3391. 1.12
  3392.  5 VDU6,19,1,0,0,0,0,21
  3393. 1.12
  3394.  6 VDU6,13,11,11,11,11,11,21
  3395. 1.12
  3396.  7 VDU6:COLOUR 6:VDU21
  3397. 1.12
  3398.  8 VDU6:PRINT“N o r w i c h   C o
  3399. 1.12
  3400.  m p u t e r   S e r v i c e s“
  3401. 1.12
  3402. :VDU21
  3403. 1.12
  3404.  9 VDU6:COLOUR 7:VDU21
  3405. 1.12
  3406.  
  3407. 1.12
  3408. 10 *SETCLI$PROMPT <13><10>Good
  3409. 1.12
  3410.  Morning! *
  3411. 1.12
  3412. 11 *IF SYS$TIME LEFT 2>11 THEN SET
  3413. 1.12
  3414.  CLI$PROMPT <13><10>Good Afternoon! *
  3415. 1.12
  3416. 12 *IF SYS$TIME LEFT 2>18 THEN SET
  3417. 1.12
  3418.  CLI$PROMPT <13><10>Good
  3419. 1.12
  3420.  Evening! *
  3421. 1.12
  3422.  
  3423. 1.12
  3424. 13 *KEY0 *MOUNT 0|M*FREE|M*CAT|M
  3425. 1.12
  3426. 14 *KEY1 etc...
  3427. 1.12
  3428. 20 *KEY12 *FORMAT 0 D|M
  3429. 1.12
  3430.  
  3431. 1.12
  3432. 21 *SET Run$Path ,ADFS:$.,RFS:$.
  3433. 1.12
  3434. ,%.
  3435. 1.12
  3436. 22 *SET Alias$> CAT
  3437. 1.12
  3438.  
  3439. 1.12
  3440. 23 *FX255,8
  3441. 1.12
  3442. 24 *ADFS
  3443. 1.12
  3444. 25 *BASIC<gr>OC6
  3445. 1.12
  3446. The LL160 command (1) ensures that the command lines are not split up
  3447. and the PC command ensures that the pad characters are sent when
  3448. spooling the file. (2) switches off the screen display, but since this
  3449. actual command appears on the screen, (3) moves up and wipes it out
  3450. again! (4) and (5) change foreground and background colours (6) moves
  3451. the cursor back up the screen, before printing out a welcome message in
  3452. a different colour, (7 & 8) and switching back to white (9). The IF
  3453. SYS$TIME commands then sets up the Arthurian prompt (normally a star on
  3454. its own) to be something a bit more timely. (This doesn’t automatically
  3455. change the greeting as the time of day changes, it gives you the
  3456. greeting that was appropriate last time you pressed <ctrl-break>.) The
  3457. function keys are then programmed, the runpath is set up etc (21 − 24)
  3458. (See Archive 1.7, page 8) before BASIC is invoked with an OC6 to re-
  3459. enable the screen.
  3460. 1.12
  3461. (You could create it by making it a BASIC program that started...
  3462. 1.12
  3463. *SPOOL RFS:!BOOT
  3464. 1.12
  3465. PRINT“VDU21”
  3466. 1.12
  3467. and endedÉ
  3468. 1.12
  3469. PRINT“*BASIC”;CHR$(6);
  3470. 1.12
  3471. *SPOOL
  3472. 1.12
  3473. I haven’t tried this BASIC version, but I presume it would work.)
  3474. 1.12
  3475. •   Keyboard repeat speed. You may have noticed with First Word Plus or
  3476. other wordprocessors that when pressing <return> on auto-repeat it
  3477. cannot keep up and, when you take your finger off the key, it goes on
  3478. spewing out returns until the keyboard buffer is empty. You can avoid
  3479. this by reducing the auto-repeat speed with, say, *Configure repeat 15
  3480. (instead of the default of 8) and then pressing <ctrl-break>. (It should
  3481. really be called the auto repeat time as the number is the time in
  3482. centi-seconds between repeats.) Instead of changing the configuration,
  3483. you may prefer to could add a *FX12,15 command into the !BOOT file and
  3484. then press <ctrl-break> after your WP session to restore the default
  3485. repeat speed.
  3486. 1.12
  3487. •   Disappearing cursor in EDIT. Have you noticed that if you hold the
  3488. cursor key down in the BASIC editor, the cursor disappears so that you
  3489. can’t see where it is on the line? Try changing the auto repeat speed as
  3490. mentioned in the hint above − doesn’t always work, but it seems to make
  3491. it better if you have a faster speed (smaller number in the command).
  3492. 1.12
  3493. •   Auto indenting in EDIT. Some people like to put the indenting into
  3494. the program itself to show the structure (as opposed to using LISTO3 to
  3495. show the structure when you list it). If you are using the ARM BASIC
  3496. editor, you can add the spaces automatically as you type in the program.
  3497. What happens is that if you put a number of spaces at the beginning of
  3498. one program line then, when you press <return>, the new line has the
  3499. same number of leading spaces as the line before, so until you reach a
  3500. REPEAT or UNTIL or FOR or NEXT etc, you just press <return> and type the
  3501. next line without thinking about the indenting.
  3502. 1.12
  3503. •   Disappearing programs in EDIT!! On the BASIC editor, if you edit a
  3504. line that occupies more than one screen line and make it shorter, it may
  3505. leave a blank line on the screen (no problem − this disappears as soon
  3506. as you move the cursor away from that line). If you then press <return>
  3507. to create a new line, the new line goes in the gap left by the editing
  3508. (still, apparently, no problem). However as soon as you try to use any
  3509. of the move, delete, or copy functions, all the line numbers go wrong
  3510. and cursor movement becomes rather unpredictable. Indeed, if you move
  3511. down the program, you will find that when the line that was edited moves
  3512. off the top of the screen, the scrolling continues and the program
  3513. disappears into oblivion! (Reset and OLD will recover your program
  3514. intact.)
  3515. 1.12
  3516. The solution is, if you get a line gap, either re-number (which happens
  3517. automatically if the line numbers were already consecutive) or move down
  3518. a line then back up again before pressing <return>.
  3519. 1.12
  3520. •   Pencil for Artisan. If you want to add a ‘pencil’ facility to
  3521. Artisan, the joined-lines function can be made to provide this in the
  3522. following way. (1) Using a copy (not the original!!) of the Artisan
  3523. disc, enter the BASIC editor and load ART5. (2) Use Search and Edit to
  3524. find DEFPROCKB. (3) Alter the procedure so that it looks like this:-
  3525. 1.12
  3526. DEFPROCKB
  3527. 1.12
  3528. LOCAL X%, Y%, B%
  3529. 1.12
  3530. IF J%=6 AND CLARE%=-1 THEN
  3531. 1.12
  3532. MOUSE X%,Y%,B% :ENDPROC
  3533. 1.12
  3534. ELSE
  3535. 1.12
  3536. REPEAT:MOUSE X%,Y%,B%:UNTIL B%<>BB%:ENDPROC
  3537. 1.12
  3538. ENDIF
  3539. 1.12
  3540. (4) Save this as ART5. (5) For completeness, use the Welcome utility,
  3541. SEDIT, to change the joined-lines icon into a pencil icon. (6) Now, with
  3542. the joined-lines function selected, holding down <select> draws a
  3543. continuous line. On releasing <select>, the normal rubber band line
  3544. appears, but it can be released by pressing <adjust> once. Pressing
  3545. <adjust> again carries out the UNDO function.
  3546. 1.12
  3547. (While on the subject of modifying Artisan, note the short addition in
  3548. Acorn User, April ’88 which adds an airbrush effect.)
  3549. 1.12
  3550. •   Star LC24-10. If you are having problems with getting a Star LC24-10
  3551. to accept output from First Word Plus or Graphic Writer, check the EPROM
  3552. chip in the printer next to the dip switches. If it has a label on it
  3553. showing version 1.0, contact Star Micronics and they will supply a free
  3554. up-grade.
  3555. 1.12
  3556. •   Moving menus. If you find that your menus keep moving about, drag
  3557. the box down to the extreme bottom right corner of the screen until you
  3558. can go no further. This makes them a little more secure − simple, but
  3559. soothing!
  3560. 1.12
  3561. •   Programming for speed. Programs like EMR’s SoundSynth and Minerva’s
  3562. Hoverbod and Missile Control are actually written in BASIC, with calls
  3563. to ARM assembly language routines where extra speed is really necessary.
  3564. 1.12
  3565. If you thought professional quality programs demanded assembly language
  3566. only, think again! Perhaps there is a program you had thought of
  3567. writing, but did not feel could be written in BASIC; the speed of the
  3568. Archimedes has changed all of that.
  3569. 1.12
  3570. Your strategy should be to write the whole program in BASIC first and
  3571. then see which routines need replacing with assembly language in order
  3572. to provide the right response times.
  3573. 1.12
  3574. Mike Ginns’ recent book from DABS Press, “Archimedes Assembly Language”,
  3575. contains a large number of assembly language counterparts for BASIC
  3576. statements (he calls them “templates”), and would be of great value if
  3577. you want to try your hand at this sort of approach. Although the book
  3578. has rather a large number of grammatical errors and is not quite as
  3579. fully comprehensive as it claims to be, but is still a good buy at
  3580. £14.95. (Ian Nicholls)
  3581. 1.12
  3582. First Word Plus Hints
  3583. 1.12
  3584. •   Using PC’s − If you have access to a PC and a PC version of First
  3585. Word Plus, you may be interested to know that you can transfer files
  3586. between the two using the Getfile and Putfile utilities of the PC
  3587. Emulator. You can even transfer supplementary dictionaries the same way.
  3588. 1.12
  3589. •   Adding printer drivers − It may not be very obvious how you add the
  3590. extra printer drivers that we’ve provided on the program discs, onto
  3591. your First Word Plus disc. Suppose you want the Kaga Taxan driver. Put
  3592. in the program disc and type
  3593. 1.12
  3594. *copy 1WP.cfg.Kaga_Taxan 1WP.cfg.* P
  3595. 1.12
  3596. then change discs and press <space> as prompted. (Or use dual drives if
  3597. you have them.)
  3598. 1.12
  3599. •   Default printer driver − If you want to make, say the Juki driver,
  3600. the default so that it comes up with that as the driver when you boot up
  3601. the disc, use:
  3602. 1.12
  3603. *copy  $.1WP.cfg.Juki  $.Res*.
  3604. 1.12
  3605. 1WP.1wp_print F
  3606. 1.12
  3607. The F in the copy command makes it over-write the existing default
  3608. driver.
  3609. 1.12
  3610. •   Paging problems. You can now get a version of First Word Plus that
  3611. obeys the command in the printer driver to stop at the end of a page to
  3612. allow you to change the paper. Brian Carroll writesÉ “I returned my disc
  3613. to Acorn and had it back by return of post with a clear and helpful
  3614. letter. It seems that Acorn are at last getting the message about
  3615. customer support. There are only two modified files: $.resources.1WP.1WP
  3616. and $.resources.1WP. 1ML, so for anyone who has done some work to
  3617. configure their working master disc it would be simpler just to copy
  3618. these two files across than to start again from scratch. The bug-fix
  3619. works OK, so the printer drivers that I sent for Canon PW-1080A (program
  3620. disc number 10) will work properly.”
  3621. 1.12
  3622. •   LQ1050 − You can add double height to the printer driver merely by
  3623. using Search and Replace, changing 57 for 77 (double width for double
  3624. height). It works fine − the only thing to remember is to set the line
  3625. spacing to 2 in the ruler when choosing expanded pitch.
  3626. 1.12
  3627. •   Large documents. Beware when you are printing long documents (30
  3628. pages+) as FWP can get a bit confused and print the wrong pages.
  3629.  
  3630.  
  3631. •   How to wipe a disc clean − If you want to wipe a disc completely
  3632. clean, you can use *WIPE * ~CFR<return> (Use this command with care −
  3633. there’s no going back once you’ve pressed <return>!) − in other words,
  3634. remove files with any name (*), don’t ask for confirmation of each wipe
  3635. (~C), force them (F) to be deleted even if they are locked and do it
  3636. recursively (R) so that the contents of all directories are deleted.
  3637. However, even this drastic measure won’t allow you to delete a library
  3638. directory if one exists. So do a *Lib “”<return> before the *WIPE
  3639. command.
  3640. 2.1
  3641. •   GammaPlot/System Delta Plus − If you have been trying to import SDP
  3642. files into GammaPlot and have been unsuccessful, read onÉ Firstly you
  3643. have to copy the System Delta Plus software onto your GammaPlot disc.
  3644. Then if it still doesn’t work, it will be because you have an older
  3645. version of System Delta Plus. Send the original SDP disc back to Minerva
  3646. and ask for an up-grade.
  3647. 2.1
  3648. •   Mounting problems (sic) − Do you find that sometimes it refuses to
  3649. respond to a *MOUNT command even if you take the disc out and put it
  3650. back in again? Two solutions: type *BYE and then you should find that
  3651. *CAT will cause it to access the disc OR if, like me, you’ve got *MOUNT
  3652. on a function key, just do a *MOUNT with no disc in the drive then
  3653. *MOUNT with the new disc in place. If you are in First Word Plus where
  3654. you cannot issue star commands anyway, the latter technique should do
  3655. the trick since you can achieve the equivalent of *MOUNT by clicking on
  3656. the close box (the X) in the file menu. (Just as a matter of interest,
  3657. does anyone know why it gets into this state sometimes?)
  3658. 2.1
  3659. •   Users of C (and other compiled languages) may find the following
  3660. command file useful, as sent in by Peter Linstead. You can put it in the
  3661. $ directory of your hard disc and use it when starting a C programming
  3662. session. Once you have assigned your current program’s name to NAME
  3663. using, for example, *SET NAME MYPROG you can edit the source file by
  3664. pressing <f1>. Once out of TWIN, <f2> will compile and link the source
  3665. code and <f3> will execute the run code. By using SETMACRO, you can
  3666. change the working name with another *SET command without running the
  3667. command file again. It assumes that both FPE and TWIN are in the
  3668. $.Library.
  3669. 2.1
  3670. *| > $.Library .C
  3671. 2.1
  3672. *FPE
  3673. 2.1
  3674. *DIR $.ARM.BENCH
  3675. 2.1
  3676. *SETMACRO ALIAS$AUTOT *TWIN
  3677. 2.1
  3678.  C.<NAME> |M
  3679. 2.1
  3680. *SETMACRO ALIAS$AUTOC *CC <NAME>
  3681. 2.1
  3682.  − LINK |M
  3683. 2.1
  3684. *SETMACRO ALIAS$AUTOR *RUN
  3685. 2.1
  3686. P.<NAME> |M
  3687. 2.1
  3688. *KEY 1 *AUTOT|M
  3689. 2.1
  3690. *KEY 2 *AUTOC|M
  3691. 2.1
  3692. *KEY 3 *AUTOR|M
  3693. 2.1
  3694. *SET RUN$PATH ,%.,$.ARM.LIBRARY.,@.P.
  3695. 2.1
  3696. *GOS
  3697. 2.1
  3698. (I have just reproduced this from Peter’s hand-written letter and I
  3699. haven’t got C to try it out on, so I hope I’ve transcribed it correctly.
  3700. If it hadn’t been for the postal strike I’d have sent it to David Wild
  3701. first, so please bear with us if you find it is not completely correct.
  3702. Ed.)
  3703. 2.1
  3704. •   ANSI C Compiler − Mike Sherratt writesÉ “On a very fundamental noteÉ
  3705. The manual is very terse. To compile the demo programs on the distribu
  3706. tion diskette − Balls64, Sieve and Hello, heed the ReadMe file where it
  3707. says ‘RMLoad the FP emulator etc i.e. RMload fpe240’. Get to the
  3708. directory level ‘Bench’ then do:
  3709. 2.1
  3710. *CC −Arthur Sieve
  3711. 2.1
  3712. The spaces are significant, ‘−’ is minus. The Sieve source file is in
  3713. sub-directory ‘c’. The executable file is now in sub-directory ‘p’.
  3714. 2.1
  3715. The program can be run from the star prompt by typing *Sieve. The ‘c.’
  3716. prefix is embedded (for lack of a better word) in the compiler, so don’t
  3717. try to create the prefix!! You are now on the way.
  3718. 2.1
  3719. This information came thanks to Watford Elec-tronics who used Acorn’s
  3720. dealer hot-line for me.“
  3721. 2.1
  3722. (Because of the postal strike, this has been inserted by the Ed rather
  3723. than sending it to David for checking, so hopefully it will be OK!?)
  3724. 2.1
  3725. •   Formatting from programs − If you want to write a disc copier
  3726. program, as we at Archive obviously did for copying the program discs,
  3727. you have to find some way to get round the fact that *FORMAT asks for a
  3728. keyboard confirmation. We did it by creating a file on the second drive
  3729. that consisted of just <Y> and then called that is input from the
  3730. program. Ingenious! But then we found the easy (undocumented) way of
  3731. doing it:
  3732. 2.1
  3733. *FORMAT 0 D Y
  3734. 2.1
  3735. Simple if you know how!
  3736. 2.1
  3737. •   Replacement 3.5“ disc drives − One reader had to replace his 3.5”
  3738. drive and Acorn could only offer him the official second disc drive up-
  3739. grade (which includes a new front facia which he didn’t need) so he
  3740. bought an un-cased 3.5“ drive from Matmos Ltd (1 Church Street,
  3741. Cuckfield, W.Sussex, RH17 5JZ, 0444−414484) for £59.50 + £3 carriage +
  3742. VAT. This drive was almost a direct fit and only required some judicious
  3743. filing of the button slot to complete the replacement.
  3744. 2.1
  3745. •   Debugging ARM code listings − It is sometimes useful for non-ARM
  3746. code specialists who want to type in ARM code program listings to have
  3747. ‘wayside pointers’ as the code runs to help them debug the program and
  3748. find out where they have made typing errors. Adding the occasional SWI
  3749. &1nn (where nn is 30 to 39 for number 0 to 9) will print out these
  3750. numbers as an indication of how far the program has got. (Better still,
  3751. buy the monthly program disc!!! Ed.)
  3752. 2.1
  3753.  
  3754.  
  3755.  
  3756. •   Mannisman Tally printers with serial interface − Pin connections
  3757. are: pins 1, 4 and 6 linked together on the Archimedes, pin 3 to pin 3
  3758. on the printer, pin 5 to pin 7 on the printer and pin 8 to both pins 11
  3759. and 19 on the printer.
  3760. 2.2
  3761. •   SWI “XOS...” − If you are using SWI “XOS...” commands so that you
  3762. can handle your own errors, it will fail if you try to return
  3763. immediately after this command to the calling routine. A dummy instruc
  3764. tion needs to be inserted before the LDMFD instruction. Presumably a
  3765. ‘feature’ of OS 1.2.
  3766. 2.2
  3767. •   Problems with *Memory and *MemoryI − If you try to use these two
  3768. commands in the debugger with the aim of dumping to printer, you will
  3769. find that codes above &7F are not weeded out − they are all sent to the
  3770. printer regardless which can cause all sorts of problems. The following
  3771. program patch will solve the problem.
  3772. 2.2
  3773.  10 REM> DEBUGPCH
  3774. 2.2
  3775.  20 REM (C) JW^2 4th OCTOBER 1988
  3776. 2.2
  3777.  30 DIM A% &270C
  3778. 2.2
  3779.  40 OSCLI“SAVE Debugged_D 38486A0
  3780. 2.2
  3781.  +270C“
  3782. 2.2
  3783.  50 OSCLI“LOAD Debugged_D ”+STR$~A%
  3784. 2.2
  3785.  60 FOR F=0 TO 3 STEP 3
  3786. 2.2
  3787.  70   P%=A%+&2230
  3788. 2.2
  3789.  80   [
  3790. 2.2
  3791.  90   OPT F
  3792. 2.2
  3793. 100   STMDB R13!,{r0-r9 ,R14}
  3794. 2.2
  3795. 110   .LOOP
  3796. 2.2
  3797. 120   LDRB  R0,[R9],#1
  3798. 2.2
  3799. 130   CMP   R0,#&7F
  3800. 2.2
  3801. 140   MOVHS R0,#&2E
  3802. 2.2
  3803. 150   CMP   R0,#&1F
  3804. 2.2
  3805. 160   MOVLS R0,#&2E
  3806. 2.2
  3807. 170   SWI   “XOS_WriteC”
  3808. 2.2
  3809. 180   BVS   (LOOP+&35D)
  3810. 2.2
  3811. 190   SUBS  R2,R2,#1
  3812. 2.2
  3813. 200   BNE   LOOP
  3814. 2.2
  3815. 210   ]
  3816. 2.2
  3817. 220 NEXT
  3818. 2.2
  3819. 230 OSCLI“SAVE Debugged_D ”+STR$~A%+
  3820. 2.2
  3821. “ +270C”
  3822. 2.2
  3823. 240 OSCLI“SETTYPE Debugged_D &FFA”
  3824. 2.2
  3825. •   EDIT’s disappearing cursor − If you use ‘options’ (<shift-f3>), you
  3826. can change to a non-flashing cursor which is visible all the time, and
  3827. you don’t have to change it each time you switch on the machine because
  3828. EDIT stores its options in cmos ram. (Anyone know if there’s a way to
  3829. re-program it to change the colour of the cursor?)
  3830. 2.2
  3831. •   Putting sound through the monitor − It is perfectly possible to put
  3832. the sound output from the 3.5mm stereo jack socket on the Archimedes
  3833. through the amplifiers and speaker(s) of both the standard Acorn colour
  3834. monitor and also the Phillips CM8833. All you need is a piece of twin
  3835. screened cable (though actually I used ordinary thin three core mains
  3836. flex which is OK for such a short length) and a 3.5 mm stereo jack plug
  3837. (RS Components 274−284, £1.19 for two). The SCART plug connections are
  3838. that pin 2 is right audio, 4 is earth and 6 is left audio. The pins
  3839. should be numbered, but if not, 2, 4 and 6 are the first three pins
  3840. along the long edge of the plug starting from the rectangular end.
  3841. 2.2
  3842. Three possible problems: firstly, you may find that the SCART plug has
  3843. no pins at positions 2, 4 and 6 in which case you will have to buy a new
  3844. plug (Tandy N¼ 15−7030, £1.49 each) and re-wire the other connections.
  3845. Secondly, you may find that your cable doesn’t fit through the space
  3846. available for the cable entry in the SCART plug − in which case, some
  3847. judicious hacking of the plastic is needed. Finally, if the SCART plug
  3848. has got pins at 2, 4 and 6, you may not be able to get at them to solder
  3849. onto them. The solution here is to push each of the three pins back out
  3850. through the body of the plug, solder them then push them back in again.
  3851. It sounds easy but it’s not − there are little barbs the stop the pins
  3852. being pushed out so you have to try to manipulate these and push the
  3853. pins out at the same time − OK if you have three hands!
  3854. 2.2
  3855. The result − If the kids want to play Orion at full volume, they can,
  3856. but I can turn it back down to a sensible volume when I use the system.
  3857. 2.2
  3858. •   Stereo Speakers − I recently followed the suggestion in Archive 1.2,
  3859. page 7 and purchased the amplified speakers (Model 40-1259E) from a
  3860. local Tandy store. Initially I also purchased a couple of mains adaptors
  3861. to power each unit but I found that this caused a considerable mains hum
  3862. through both speakers. Upon returning to the Tandy store, I was advised
  3863. that hum was caused by the mains adaptors not being earthed and, rather
  3864. than spending more money on earthed mains adaptors, I exchanged the
  3865. original adaptors for re-chargeable batteries which seem to work fine −
  3866. there are also fewer wires trailing around! Whilst the stereo effect is
  3867. very good, there is a problem in that there is no volume control fitted
  3868. to these speakers; the suggestion from one of the staff at Tandy was to
  3869. wire in two of their “L-Pad Speaker Level Controls”. Have any other
  3870. Archive readers tried this or come up with a different solution?
  3871. 2.2
  3872. I have found that by amending the *Configure SoundDefault middle
  3873. parameter to a lower value than 7, the volume can be reduced, this does
  3874. provide some measure of control of sound volume; these parameters can
  3875. take a value of 0 to 7 with each unit corresponding to one eighth of the
  3876. overall maximum volume (see PRM, page 537).
  3877. 2.2
  3878. •   Monitor problems (with solutions!) − Fujitsu and MAG 14C − The
  3879. problem began on the MAG with a distortion of the top few lines of the
  3880. display when in a multisync mode. The nature of this problem suggested
  3881. that the monitor took several scan lines to lock onto the composite sync
  3882. signal fed to it from the Archimedes. It was decided to feed it with
  3883. separate vertical (frame) and horizontal (line) sync signals, which
  3884. necessitated having to alter the preset links 10 and 11 within the
  3885. Archimedes. At present this involves cutting a track (Lk10) and
  3886. inserting a link (Lk11), since these links are not brought out on the
  3887. normal Molex type links. Having done this modification you need a
  3888. *Configure Sync 0 to set ‘Vertical sync only’ instead of ‘Composite
  3889. sync’ to the monitor, otherwise the display rolls (indicating lost frame
  3890. sync). This then cured the screen distortion problem but because of the
  3891. way Acorn have put Composite/Vertical sync on the green signal, it kills
  3892. the green output. With much trepidation this problem was overcome by
  3893. disabling Acorn’s implementation of this signal by cutting pin 2 of IC
  3894. 4. The result is a perfect picture.
  3895. 2.2
  3896. The Fujitsu monitor problem was much simpler and cured far easier after
  3897. the troubles with the MAG.
  3898. 2.2
  3899. Although the picture quality was very good, there was an excess of
  3900. green, even though R39 had been removed (see Archive 1.3 p8) It was
  3901. originally thought that some internal adjustment of the green gun was
  3902. needed but, with the experience of MAG monitor (and having tried it on
  3903. the modified sync signal from the green output) the link changes proved
  3904. unnecessary as the monitor worked perfectly happily with composite sync.
  3905. Again the result was a perfect picture.
  3906. 2.2
  3907. Anyone wanting further information on this modi-fication can either
  3908. contact Reg Dalton on 0742 487992 (less technical/Evenings only) or
  3909. Steve Bass (who did all the work) on 0742 708028 (Daytime) or 0742
  3910. 886622 (Evenings).
  3911. 2.2
  3912. •   Screen saving from the SCML Teletext adaptor − R L Jefferies has
  3913. worked out how to dump screens from the SCML Teletext Adaptor. (Pressing
  3914. the ‘S’ command option gives an error but SCML have not replied to his
  3915. questions about that yet.) He has utilised Robin Newman’s mode 7 to mode
  3916. 9 utility as supplied on program disc 1.10. He copied this into the
  3917. library directory on the Teletext disc and then created a mode 7 to mode
  3918. 9 screensave module using Neil Strong’s “Printkey screen dump” (issues
  3919. 1.10 p 45 and 1.11 p 7). Two lines need altering in the source program:
  3920. 2.2
  3921. line 840 should be changed to cmp r0,#83 and line 920 should be equs
  3922. “M7M9 screensave scr<file>”
  3923. 2.2
  3924. Note that you should *SETEVAL file XX before you load the “S” key module
  3925. and before executing the Teletext module. One small niggle is that Robin
  3926. Newman’s module returns with the cursor ON. Is there an easy way to get
  3927. rid of this?
  3928. 2.2
  3929. •   Bug in C − Karl Strickland writesÉ There appears to be a bug in the
  3930. fgets() function in version 1.54A (latest public release) of ANSI C. 
  3931. Instead, use the function given below and declare it using
  3932. 2.2
  3933. char *xfgets (char*,int,FILE*);
  3934. 2.2
  3935. We have to use xfgets (as opposed to fgets) because the linker gets
  3936. confused if it finds the same function declared twice.
  3937. 2.2
  3938. char* xfgets (char* a,int b,FILE *s)
  3939. 2.2
  3940. {2 .2
  3941.    int c,d;
  3942. 2.2
  3943.    *a=NULL;     /* Must include STDIO.H */
  3944. 2.2
  3945.    for (c=0;c<b;c++) {2 .2
  3946.       d=fgetc(s);
  3947. 2.2
  3948.       if (d==EOF)
  3949. 2.2
  3950.          return NULL;
  3951. 2.2
  3952.       else
  3953. 2.2
  3954.          if (d==13)
  3955. 2.2
  3956.             return a;
  3957. 2.2
  3958.          else
  3959. 2.2
  3960.             strncat(a,(char*)&d,1);
  3961. 2.2
  3962.    }
  3963. 2.2
  3964.    return a;
  3965. 2.2
  3966. }
  3967. 2.2
  3968. •   A hint for Twin from Bj¿rn Fl¿tten − When using Twin to edit large
  3969. BASIC programs you can easily run out of memory. (Twin complains by
  3970. hanging up the computer when called.) This is because of the inconveni
  3971. ent way Twin is called from BASIC. Because Twin works on ASCII files,
  3972. BASIC has to expand the current program from tokenised form to ASCII.
  3973. This copy is placed on top of the BASIC program and is maybe 20-30%
  3974. larger than the original. Then Twin is called and makes a new copy of
  3975. the program which it places on top of itself. This means that an
  3976. unnecessary lot of memory is used.
  3977. 2.2
  3978. One solution is to let Twin run from the address of PAGE. This works
  3979. because Twin is not loaded into memory before the BASIC program is
  3980. expanded. However, you will have to ensure that the BASIC program is
  3981. bigger than Twin, if not, Twin will be loaded over the expanded version
  3982. of your program.
  3983. 2.2
  3984. (This unfortunately makes the problem of Twin not releasing some vectors
  3985. worse. This means that these vectors will point into the middle of your
  3986. BASIC program after exiting from Twin. Use reset after exiting to BASIC 
  3987. and then OLD, to cure this.)
  3988. 2.2
  3989. •   Problems with (Master) EDIT − If you get rubbish when you load up
  3990. the EDIT ROM image from the BBC Master into the 6502 emulator, try
  3991. loading it with:
  3992. 2.2
  3993. *65arthur
  3994. 2.2
  3995. *GO F800
  3996. 2.2
  3997. *EDIT
  3998. 2.2
  3999. •   From Arthur to BASIC − If you are in the Arthur supervisor and you
  4000. type *Progname where Progname is a BASIC program, it will run the
  4001. program and drop you back out into the supervisor (equivalent to *BASIC
  4002. −chain Progname). However, if you *LOAD Progname, it switches to BASIC,
  4003. loads the program and gives you back control with a ‘>’ prompt −
  4004. equivalent to *BASIC −load Progname but shorter to type and certainly
  4005. easier than *BASIC followed by LOAD “Progname”. If you do a *SHOW, you
  4006. will see the filetype definitions which make sense of it all.
  4007. 2.2
  4008. •   Sprites and Sprite Commands − Paul White-horn writesÉ The Sprite
  4009. Editor on the Welcome disc does not work properly being unable to create
  4010. masked sprites (those with a transparent back-ground) or to save shades
  4011. of colour that have been set up in the various edit modes. For many
  4012. board style games this is not an insuperable difficulty and for chess
  4013. and checkers, mode 1 creates reasonably detailed sprites in red, yellow,
  4014. black and white.
  4015. 2.2
  4016. The simplest way of getting your own sprites from the Welcome disc onto
  4017. your game or program disc is to *SNEW to wipe out anything that can be
  4018. called a sprite in RAM, *SLOAD (by name or number) your sprite or sprite
  4019. file into the machine from the Welcome disc (you don’t need to be in the
  4020. Sprite Editor to do this), take out the Welcome disc, insert your game
  4021. disc, *MOUNT it and *SSAVE (name) the contents of the machine’s RAM.
  4022. Whatever sprites you have in RAM at this point will all go into a file
  4023. created and named by the *SSAVE command and will be placed on your own
  4024. disc.
  4025. 2.2
  4026. To check that they are all safely installed on your game disc *SNEW
  4027. again (to clear RAM) and *SLOAD (name) the sprite(s) you have just
  4028. *SSAVE’d on your disc. Now typing *SLIST will bring up a list of ALL the
  4029. sprites in RAM which should correspond to the ones you have just
  4030. transferred from the Welcome disc. At this point you can rename the
  4031. sprites you see listed before you but the syntax for the *SRENAME
  4032. command is not as it appears in the User Guide. Type *SRENAME (oldname)
  4033. (newname) without commas or other punctuation marks separating the two
  4034. names and without any quote marks round the names. This renames sprites
  4035. in RAM and if you want these new names preserved on your disc then they
  4036. must be *SSAVE’d collectively back to disc and you can  save them with a
  4037. different file name if you wish.
  4038. 2.2
  4039. *SDELETE (name) deletes a sprite in RAM whereas *DELETE (name) deletes a
  4040. sprite (or file of sprites) on disc. Having weeded out sprites you don’t
  4041. require with *SDELETE it is best to *SSAVE those you do need (possibly
  4042. with a new file name) and *SNEW to clear RAM before proceeding further.
  4043. This way you will not have rogue sprites lurking in RAM or in files on
  4044. your disc where they may be called by default if they have the same name
  4045. or number as the new ones.
  4046. 2.2
  4047. To create files of sprites from different sources you can use *SMERGE
  4048. which merges a sprite (or file of same) from disc with those already
  4049. installed in RAM. Those coming from disc have priority so if you have
  4050. two sprites with the same name or number, the one on the disc will
  4051. overpower its namesake in RAM. This command seems a little haphazard on
  4052. my 310 especially with sprites which are numbered and occasionally
  4053. several tries are needed to make it happen as required.
  4054. 2.2
  4055. If you intend to choose sprites during the course of your game as a
  4056. consequence of numerical operations then it is necessary to use numbers
  4057. as names so that they can be called with the VDU command. The VDU call
  4058. takes variables with a range between 0 and 255 so make sure your sprites
  4059. don’t exceed this range.
  4060. 2.2
  4061. *SINFO prints the size of the sprite workspace and *SCOPY (oldname)
  4062. (newname) copies the named sprite. *SGET picks up a portion of the
  4063. screen as a sprite but for details of this see the User Guide.
  4064. 2.2
  4065. •   EMR SoundSynth + CC ROM podule − There has been a problem of a clash
  4066. between EMR’s SoundSynth and Computer Concepts’ ROM/RAM podule in that
  4067. after using SoundSynth, the contents of the RAM filing system disap
  4068. peared! (Fortunately, I had a recent backup!) EMR have been looking into
  4069. the problem and have sorted it out. If you have had the same problem,
  4070. return your disc to EMR and they will replace it “in most cases, free of
  4071. charge”.
  4072. 2.2
  4073. •   Loading palette files − Here is a simple BASIC program to load a
  4074. “!Palette” file and set the palette up. The file format really is
  4075. simple: 3 bytes are stored for each colour − red, green and blue
  4076. respectively. This group of 3 bytes is repeated for all 20 colours saved
  4077. − logical colours 0-15, the border, and mouse colours 1-3.
  4078. 2.2
  4079.  10 REM >TestPal
  4080. 2.2
  4081.  20 REM ===> To demonstrate reading a
  4082. 2.2
  4083.  30 REM ===> Desktop !Palette file
  4084. 2.2
  4085.  40 REM By John Smith, September 1988
  4086. 2.2
  4087.  50 REM
  4088. 2.2
  4089.  60 MODE 12 :REM Any 16-colour mode
  4090. 2.2
  4091.  will do.
  4092. 2.2
  4093.  70 :
  4094. 2.2
  4095.  80 REM Put all 16 colours on screen,
  4096. 2.2
  4097.  and a 2-colour mouse pointer.
  4098. 2.2
  4099.  90 FOR x%=0 TO 15
  4100. 2.2
  4101. 100   GCOL x%
  4102. 2.2
  4103. 110   RECTANGLE FILL x%*80,0,80,1023
  4104. 2.2
  4105. 120 NEXT
  4106. 2.2
  4107. 130 MOUSE ON
  4108. 2.2
  4109. 140 *POINTER 1
  4110. 2.2
  4111. 150 PRINTTAB(0,0);“Now press a key to
  4112. 2.2
  4113.  load the ‘!Palette’ file“
  4114. 2.2
  4115. 160 dummy=GET
  4116. 2.2
  4117. 170 :
  4118. 2.2
  4119. 180 REM Now load the palette file.
  4120. 2.2
  4121. 190 handle%=OPENIN “!Palette”
  4122. 2.2
  4123. 200 REM Do “standard” colours first.
  4124. 2.2
  4125. 210 FOR loop%=0 TO 15
  4126. 2.2
  4127. 220   COLOUR loop%, BGET#handle%,
  4128. 2.2
  4129.  BGET#handle%, BGET#handle%
  4130. 2.2
  4131. 230 NEXT
  4132. 2.2
  4133. 240 :
  4134. 2.2
  4135. 250 REM Screen Border
  4136. 2.2
  4137. 260 VDU 19,0,24, BGET#handle%,
  4138. 2.2
  4139.  BGET#handle%, BGET#handle%
  4140. 2.2
  4141. 270 :
  4142. 2.2
  4143. 280 REM Mouse colour 1
  4144. 2.2
  4145. 290 MOUSE COLOUR 1, BGET#handle%,
  4146. 2.2
  4147.  BGET#handle%, BGET#handle%
  4148. 2.2
  4149. 300 MOUSE COLOUR 2, BGET#handle%,
  4150. 2.2
  4151.  BGET#handle%, BGET#handle%
  4152. 2.2
  4153. 310 MOUSE COLOUR 3, BGET#handle%,
  4154. 2.2
  4155.  BGET#handle%, BGET#handle%
  4156. 2.2
  4157. 320 CLOSE#handle%
  4158. 2.2
  4159. •   InterWord to ArcWriter − if you have InterWord files from BBC days
  4160. and want to transfer them to ArcWriter, look in the First Word Plus
  4161. hints below where the transfer to FWP is achieved by transferring first
  4162. to ArcWriter.
  4163. 2.2
  4164. •   Double-precision to BBC BASIC − following on from the floating point
  4165. BCD to BBC BASIC conversion program published in Archive 1.11, page 32,
  4166. Carl Cepurneek has done a routine which converts from the more efficient
  4167. Double-precision reals to BBC BASIC.
  4168. 2.2
  4169. 10 REM>Carl - FPU number conversion
  4170. 2.2
  4171. 20 REM BBC BASIC V to FPU memory
  4172. 2.2
  4173. 30 REM format conversions
  4174. 2.2
  4175.  40 REM Packed decimal print routine
  4176. 2.2
  4177.  50
  4178. 2.2
  4179.  60 REM Carl P.Cepurneek 26 Clyde St
  4180. 2.2
  4181.  70 REM Parkside, S.A.5063,Australia
  4182. 2.2
  4183. 100
  4184. 2.2
  4185. 110 DEFPROCcvt_s(bbc,adr) :REM from
  4186. 2.2
  4187.  BBC real at |bbc to FP at adr
  4188. 2.2
  4189. 120 LOCAL exp%,sign%,mant%
  4190. 2.2
  4191. 130 !adr=0:adr!4=0   :REM clear
  4192. 2.2
  4193. 140 IF |bbc=0:!adr=0:ENDPROC
  4194. 2.2
  4195. 150 exp%=(bbc?4)-&80 :REM get
  4196. 2.2
  4197.  adjusted exponent
  4198. 2.2
  4199. 160 IFexp%>0 exp%=exp%+126 ELSE exp%=
  4200. 2.2
  4201. 126-ABS(exp%)
  4202. 2.2
  4203. 170 !adr=!adr OR exp%<<23:REM set
  4204. 2.2
  4205.  exponent bits
  4206. 2.2
  4207. 180 sign%=!bbc AND &80000000
  4208. 2.2
  4209. :REM isolate sign bit
  4210. 2.2
  4211. 190 !adr=!adr OR sign%:REM set sign bit
  4212. 2.2
  4213. 200 mant%=!bbc AND &7FFFFFFF :REM
  4214. 2.2
  4215.  clear neg bit if set
  4216. 2.2
  4217. 210 !adr=!adr OR mant%>>>8:REM set
  4218. 2.2
  4219.  mantissa
  4220. 2.2
  4221. 220 ENDPROC
  4222. 2.2
  4223. 230
  4224. 2.2
  4225. 240 DEFPROCcvt_d(bbc,adr):REM from
  4226. 2.2
  4227.  real at address bbc
  4228. 2.2
  4229. 250 LOCAL exp%,sign%,mant%
  4230. 2.2
  4231. 260 !adr=0:adr!4=0
  4232. 2.2
  4233. 270 IF |bbc=0:!adr=0:ENDPROC
  4234. 2.2
  4235. 280 exp%=(bbc?4)-&80 :REM get
  4236. 2.2
  4237.  adjusted bbc exponent
  4238. 2.2
  4239. 290 IF exp%>0 exp%=exp%+1022 ELSE exp%
  4240. 2.2
  4241. =1022-ABS(exp%)
  4242. 2.2
  4243. 300 !adr=!adr OR exp%<<20
  4244. 2.2
  4245. 310 sign%=!bbc AND &80000000
  4246. 2.2
  4247. :REM isolate sign bit
  4248. 2.2
  4249. 320 !adr=!adr OR sign%:REM set sign bit
  4250. 2.2
  4251. 330 mant%=!bbc AND &7FFFFFFF
  4252. 2.2
  4253. :REM clear sign bit set
  4254. 2.2
  4255. 340 !adr=!adr OR mant%>>>11 :REM set
  4256. 2.2
  4257.  mantissa msbits
  4258. 2.2
  4259. 350 mant%=mant%<<21 :REM shift over
  4260. 2.2
  4261.  low bits
  4262. 2.2
  4263. 360 adr!4=adr!4 OR mant%  :REM set
  4264. 2.2
  4265.  mantissa lsbits
  4266. 2.2
  4267. 370 ENDPROC
  4268. 2.2
  4269. 380
  4270. 2.2
  4271. 390 DEFPROCcvt_e(bbc,adr):REM from
  4272. 2.2
  4273.  BBC real at |bbc
  4274. 2.2
  4275. 400 LOCAL exp%,sign%,mant%
  4276. 2.2
  4277. 410 !adr=0:adr!4=0:adr!8=0 :REM clear
  4278. 2.2
  4279.  destination
  4280. 2.2
  4281. 420 IF |bbc=0:!adr=0:ENDPROC
  4282. 2.2
  4283. 430 exp%=(bbc?4)-&80 :REM get
  4284. 2.2
  4285.  adjusted exponent
  4286. 2.2
  4287. 440 IFexp%>0 exp%=exp%+16382 ELSE
  4288. 2.2
  4289.  exp%=16382-ABS(exp%)
  4290. 2.2
  4291. 450 !adr=!adr OR exp%  :REM set
  4292. 2.2
  4293.  exponent bits
  4294. 2.2
  4295. 460 sign%=!bbc AND &80000000  
  4296. 2.2
  4297. :REM isolate sign bit
  4298. 2.2
  4299. 470 !adr=!adr OR sign%:REM set sign bit
  4300. 2.2
  4301. 480 mant%=!bbc OR &80000000  :REM set
  4302. 2.2
  4303.  top bit (J)
  4304. 2.2
  4305. 490 adr!4=adr!4 OR mant% :REM set
  4306. 2.2
  4307.  mantissa
  4308. 2.2
  4309. 500 ENDPROC
  4310. 2.2
  4311. 510
  4312. 2.2
  4313. 520 DEFFNprint_packed(base%)
  4314. 2.2
  4315. 530 LOCAL ms%,ms$,es%,es$,m%,s%
  4316. 2.2
  4317. 540 @%=&00001
  4318. 2.2
  4319. 550 m%=(!base% AND &80000000)>>>31
  4320. 2.2
  4321. 560 IF m%=0 ms$=“+” ELSE ms$=“-”
  4322. 2.2
  4323. 570 PRINT ms$;
  4324. 2.2
  4325. 580 m%=(!base% AND &F<<8) >>>8
  4326. 2.2
  4327. 590 PRINT m%;“.”;
  4328. 2.2
  4329. 600 FOR s%=4 TO 0 STEP -4
  4330. 2.2
  4331. 610   m%=(!base% AND &F<<s%) >>>s%
  4332. 2.2
  4333. 620   PRINT m%;
  4334. 2.2
  4335. 630 NEXT
  4336. 2.2
  4337. 640 FOR w%=4 TO 8 STEP 4
  4338. 2.2
  4339. 650   FOR s%=28 TO 0 STEP -4
  4340. 2.2
  4341. 660     m%=(w%!base% AND &F<<s%) >>>s%
  4342. 2.2
  4343. 670     PRINT m%;
  4344. 2.2
  4345. 680   NEXT
  4346. 2.2
  4347. 690 NEXT
  4348. 2.2
  4349. 700 e%=(!base% AND &40000000)>>>30
  4350. 2.2
  4351. 710 IF e%=0 es$=“+” ELSE es$=“-”
  4352. 2.2
  4353. 720 PRINT“ E”;es$;
  4354. 2.2
  4355. 730 FOR s%=24 TO 12 STEP -4
  4356. 2.2
  4357. 740   m%=(!base% AND &F<<s%) >>>s%
  4358. 2.2
  4359. 750   PRINT m%;
  4360. 2.2
  4361. 760 NEXT
  4362. 2.2
  4363. 770 =“”
  4364. 2.2
  4365. •   Using 40-track drives − If you have a 40 track 5.25“ drive as used
  4366. on PC clones, you can use it under the PC emulator but, in native
  4367. Archimedes ADFS modes you will have problems. To get round it, format
  4368. the disc as normal then, when it goes beyond “Formatting 40” and starts
  4369. clicking as it reaches the end of the travel on the head movement, press
  4370. <ctrl-break>. The disc is now formatted, but the free space map and
  4371. catalogue have not been installed. This can be done with:
  4372. 2.2
  4373. DIM buffer% 3072
  4374. 2.2
  4375. SYS“ADFS_DiscOp”,,1,0,buffer%,3072
  4376. 2.2
  4377. SYS“ADFS_DiscOp”,,2,1,buffer%,3072
  4378. 2.2
  4379. You try this entirely at your own risk! Ed.
  4380. 2.2
  4381. •   Problems with ON ERROR LOCAL − John Smith says he thinks he’s
  4382. discovered a problem when using LOCAL ERROR with ON ERROR LOCAL. It
  4383. occurs because ON ERROR LOCAL stores the exact position in the program
  4384. structure. The User Guide mentions this with respect to REPEAT...UNTIL
  4385. and WHILE...ENDWHILE loops, but it also seems to apply to IF..THEN...
  4386. ELSE...ENDIF constructs. Once the error handler has done its job,
  4387. processing must continue at the same part in the structure in which the
  4388. original error happened. For example,
  4389. 2.2
  4390. 1000 DEF PROCtest(arg)
  4391. 2.2
  4392. 1010 LOCAL ERROR
  4393. 2.2
  4394. 1020 ON ERROR LOCAL PRINT “Can’t
  4395. 2.2
  4396.  divide by zero − try again“
  4397. 2.2
  4398. 1030 IF arg < 100 THEN
  4399. 2.2
  4400. 1040 INPUT value
  4401. 2.2
  4402. 1050 PRINT arg/value
  4403. 2.2
  4404. 1060 ENDIF
  4405. 2.2
  4406. 1070 ENDPROC
  4407. 2.2
  4408. If a value of zero is input, line 1050 will error. As written, the above
  4409. code will then print a warning message and effectively execute a “GOTO
  4410. 1030”. At this point, the error handler stack is corrupted. The program
  4411. may appear to work without problem, but if any future error should
  4412. occur, the program may produce a run-time error something like “Attempt
  4413. to exit from badly nested error handler” or something similar. Occasion
  4414. ally, I have even managed to produce the dreaded “Address Exception
  4415. error”!
  4416. 2.2
  4417. The solution to this problem is quite simple − place the code that could
  4418. error together with the relevant error handler in a separate PROCedure.
  4419. I have not (yet) had any problems doing this:
  4420. 2.2
  4421. 1000 DEF PROCtest(arg)
  4422. 2.2
  4423. 1030 IF arg < 100 THEN
  4424. 2.2
  4425. 1050 PROCprint(arg)
  4426. 2.2
  4427. 1060 ENDIF
  4428. 2.2
  4429. 1070 ENDPROC
  4430. 2.2
  4431. 2000 DEF PROCprint(arg)
  4432. 2.2
  4433. 2010 LOCAL ERROR
  4434. 2.2
  4435. 2020 ON ERROR LOCAL PRINT “Can’t
  4436. 2.2
  4437.  divide by zero − try again“
  4438. 2.2
  4439. 2040 INPUT value
  4440. 2.2
  4441. 2050 PRINT arg/value
  4442. 2.2
  4443. 2060 ENDPROC
  4444. 2.2
  4445. First Word Plus Hints & Tips
  4446. 2.2
  4447. Here are a few of the many contributions we’ve been sent about First
  4448. Word Plus. We’ve got a file of about ten other contributions, so we do
  4449. need someone who knows FWP, has a reasonable skill at writing and has a
  4450. bit of spare time to field the enquiries, assimilate the hints and tips
  4451. and regurgitate something to us each month.
  4452. 2.2
  4453. •   First Word Plus startup − If you are getting fed up of starting
  4454. First Word Plus and finding yourself in lower case, you could *Configure
  4455. Nocaps, but that is a nuisance if you do programming and want to start
  4456. up in Shiftcaps. The solution is to extend the boot file, adding
  4457. *FX202,48.
  4458. 2.2
  4459. •   LQ850 with sheetfeeder − If you’re having problems with this
  4460. combination, Acorn say that you should edit the printer driver so that
  4461. entry 4 (vertical tab) is commented out by pre-fixing it with a “*”.
  4462. Also, note that if your printer is doing auto-linefeeds, you should also
  4463. edit option 1 to remove the line feed value (A) from the line to leave
  4464. just the carriage return (D).
  4465. 2.2
  4466. •   Star LC10 − (ref. the Help enquiry we had last month) David Francis
  4467. says he uses the Epson FX driver successfully with this printer. He has
  4468. the dip switches set as follows: 1-1 to 1-8 and 2-1 and 2-4 are all ON
  4469. and 2-2 and 2-3 are OFF. The Archimedes is configured to IGNORE 0. With
  4470. this setting, the printer prints out the test, including the graphics
  4471. part. As set, it also prints under <ctrl-B> as well as with Artisan.
  4472. He’s also tried to change the hex file to get it to work with quadruple
  4473. size, but hasn’t succeeded yet.
  4474. 2.2
  4475. •   Printer drivers − In designing my own printer drivers for both the
  4476. Citizen 120D and Star LC-10 printers, I have not come across the problem
  4477. noted, but mine were modified from the Epson LX printer driver. There
  4478. was an item on the Letters section (page 128) of October’s issue of the
  4479. Micro User referring to an apparently similar problem, which the writer
  4480. cured by “commenting out” line &20 of the printer driver. I must admit
  4481. that I cannot understand why this should have any effect, but in case it
  4482. benefits other Archive readers, I detail below those elements of the
  4483. printer drivers I have set up relating to form or line feeds (refer also
  4484. to page 227 of the First Word Plus manual):
  4485. 2.2
  4486. 1D, A − Linefeed (N.B. carriage return & linefeed)
  4487. 2.2
  4488. 1E, C − Formfeed (N.B. &C = 12 as mentioned in the article)
  4489. 2.2
  4490. 1F, 12 − Horizontal initialisation (N.B. appears to cancel condensed)
  4491. 2.2
  4492. 20, 1B, 52, 0 − Vertical initialisation (N.B. appears to select USA
  4493. characters)
  4494. 2.2
  4495. A further possible cause of problems may be to do with the printer’s dip
  4496. switches, on page 218 of the First Word Plus manual it does state that:
  4497. 2.2
  4498. Skip over perforation must be DISABLED and Auto linefeed must be
  4499. DISABLED
  4500. 2.2
  4501. •   Printer Drivers with extended characters − Ted Peat has sent in
  4502. various bits for FWP which we’ve put on the program disc.
  4503. 2.2
  4504. The printer drivers were written to permit both the Panasonic KXP-1081
  4505. and the Diablo-ecs printer to access the same set of extended characters
  4506. (those with codes from 160 to 255). The character set of the Archimedes
  4507. is also modified to suit.
  4508. 2.2
  4509. The Diablo-ecs printers use a daisy wheel with a double row of charac
  4510. ters, giving 192 in all. The usual ASCII set is supplemented by
  4511. characters with codes >128. The description given here applies to the
  4512. ‘scientific’ wheel containing Greek and mathematical symbols. The KXP-
  4513. 1081 can be switched to emulate the IBM Graphics set, which also
  4514. includes some Greek letters and some (but not all) useful mathematical
  4515. symbols, again with codes >128. There are also some table-drawing
  4516. symbols which are replicated several times over, and accented characters
  4517. not needed for this application. Since up to 40 user-defined characters
  4518. are possible, these redundant characters can be replaced. This then
  4519. offers the opportunity to produce matched sets of symbols for the two
  4520. printers and the Archimedes.
  4521. 2.2
  4522. I decided to include the complete Greek alphabet, which involves
  4523. duplication of some upper case letters, and (for the KXP-1081 only), one
  4524. set of table-drawing symbols. Two other symbols were added: an overline
  4525. and backspace. Backspace is entered into the text as a large leftward
  4526. pointing arrow-head (stored as character 161), but interpreted by the
  4527. printer as a true backspace. One consequence of this, of course, is that
  4528. text loses its WYSIWYG property. The advantage, however, is that both
  4529. superscripts and subscripts can be attached to the same symbol, and the
  4530. overline can be used to write a bar above a character. Since these
  4531. peculiar needs are only likely within equations, the loss of on-screen
  4532. text formatting is a minor irritation. Another complication was that the
  4533. Diablo lost its left margin alignment after a backspace, when printing
  4534. in the reverse direction. This option had to be switched off, slowing
  4535. the printer down.
  4536. 2.2
  4537. There were two options for changing the Archi-medes character set. One
  4538. was to change the Archi-medes font, to match that desired as far as
  4539. possible, and then to redefine characters for the few changes needed.
  4540. The most useful character set is that described as BFONT on p. 458 of
  4541. the User Guide. To access this you need to *Configure Country Master.
  4542. The second way: which is the one I adopted was to redefine all charac
  4543. ters from 160 to 255. To do this I added a section to the 1st Word +
  4544. loading program (Library.1stWord+ on the program disc).
  4545. 2.2
  4546. Once this was done, mapping the new character set to the Diablo’s set
  4547. was easy: merely rewrite one of the provided Diablo Printer Drivers (in
  4548. the hex dir-ectory) by changing the character translation table which
  4549. forms the last part of the printer driver text.
  4550. 2.2
  4551. The KXP-1081 offered more complications. Firstly, it is necessary to
  4552. download the redefined character set before loading 1stWordPlus. Another
  4553. addition to the loader program, together with a user prompt, took care
  4554. of this. Secondly, switching this printer to its IBM Graphics mode
  4555. caused comp-lications with graphics printing: all the linefeeds became
  4556. doubled! The printer driver codes were therefore expanded so that for
  4557. each character the printer was switched into IBM Graphics set, the
  4558. character printed, and then switched back to the Epson mode. This sends
  4559. seven characters to the printer for every one actually printed. Since
  4560. these are only occasional characters, the loss of efficiency is not
  4561. important
  4562. 2.2
  4563. •   Printer Driver Generator − John Smith has sent in, not another
  4564. printer driver, but a printer driver generator program. He’s given it to
  4565. be used as public domain software, so we have put it on Shareware disc
  4566. number 2. For best results, copy the PDG program onto a copy of the 1st
  4567. Word Plus Utilities disk before running it.
  4568. 2.2
  4569. •   Tabs and underlining − This one is for dum-dums like me, writes
  4570. David Crofts, who learn word-processing at the finger tip.
  4571. 2.2
  4572. Underlining − I spent many happy, but frustrating, hours fiddling with
  4573. forms to try to sort out under-lining in intervening spaces, till I
  4574. discovered that the hated TAB holds the key! (I expect this is obvious
  4575. for lots of people, but hold on to the yawns.) I was used to VIEW where
  4576. the TAB key worked “prop-erly”. (It inserted a TAB character, whatever
  4577. that was, but it meant that a change in ruler meant a change in layout.)
  4578. In FWP the Indent key does this job, except that it puts in a special
  4579. stretch space which is fixed in spite of further ruler alterations.
  4580. Because of this I had ignored TAB as useless.
  4581. 2.2
  4582. TAB inserts a set of normal spaces which have to be deleted individually
  4583. − a nuisance if you are experi-menting with documents. But − you can
  4584. underline TAB spaces, whereas you can’t underline Indents! And therein
  4585. lies the hint!
  4586. 2.2
  4587. By all means use indents to facilitate experi-mentation but, in the end,
  4588. TABs are preferable, where you wish subsequently to underline. If you
  4589. have used Indents, then all is not lost, though fiddle is the name of
  4590. the game. Turn off Insert, and turn on Underline (f2), then fill in the
  4591. spaces with Fixed Space (f10). Then use the mouse or keyboard to
  4592. underline the words.
  4593. 2.2
  4594. e.g. Say you have a form, the head of which is:
  4595. 2.2
  4596. Name   Address   Telephone
  4597. 2.2
  4598. the above is the result using Indent, but using TAB you will achieve:
  4599. 2.2
  4600. NameÊÊÊÊÊÊAddressÊÊÊÊÊÊTelephoneÊÊÊÊÊ
  4601. 2.2
  4602. Placing a TAB at the appropriate point near the end of the ruler allows
  4603. the line to be printed to the same length on each line.
  4604. 2.2
  4605. •   InterWord to FWP via ArcWriter − This is how Ian Barnes achieves the
  4606. transfer:
  4607. 2.2
  4608.    1.   Transfer file from IW to AW_DOC directory
  4609. 2.2
  4610.    2.   Run ArcWriter
  4611. 2.2
  4612.    3.   Press <select> for filing menu
  4613. 2.2
  4614.    4.   Highlight file x
  4615. 2.2
  4616.    5.   Press <menu>, select import, flowing, return
  4617. 2.2
  4618.    6.   Press <select> for filing menu
  4619. 2.2
  4620.    7.   Press <menu> and select export plus new name
  4621. 2.2
  4622.    8.   Transfer file to 1WP.doc directory
  4623. 2.2
  4624.    9.   Run 1WP and open file
  4625. 2.2
  4626.    10.   Select WPmode from edit menu
  4627. 2.2
  4628.    11.   Tidy up text by deleting control characters, changing any odd
  4629. letters and inserting returns at line ends to leave a presentable result
  4630. 2.2
  4631. •   Files from ArcWriter − The article by Brian Carroll in July’s issue
  4632. of Archive under the heading of “First Word Plus Notes” (pages 21-23)
  4633. was very useful together with the program ConvertWP (also on that
  4634. month’s Magazine disc). Although designed to convert Wordwise Plus
  4635. files, the program works quite well with ArcWriter as well. Briefly the
  4636. procedure to convert ArcWriter files into First Word Plus is as follows:
  4637. 2.2
  4638. 1. From the ‘Filing’ menu in ArcWriter select the ‘Export’ option to
  4639. save the file (e.g. under the name “testARC”) and then exit from
  4640. ArcWriter.
  4641. 2.2
  4642. 2. Load the ConvertWP program and enter the appropriate Source
  4643. (“testARC”) and Destination (e.g. “test1WP”) filenames.
  4644. 2.2
  4645. 3. Load First Word Plus and then the converted file (“test1WP”).
  4646. 2.2
  4647. 4. Select ‘WPmode on’ from the Edit menu.
  4648. 2.2
  4649. 5. Reformat the whole text by using the Style menu to ‘Reformat’ the
  4650. ‘Whole document’.
  4651. 2.2
  4652. Odd words may sometimes get missed out of the converted text, possibly
  4653. due to the fact that this data was preceded by “tabs” in ArcWriter.
  4654. 2.2
  4655.  
  4656. •   Fontsize problems? (Ed. got caught out on this one) With Clares’
  4657. Sound and Graphics demo, when you start it up, it says it needs 44k of
  4658. fontsize, so I tried to re-configure with fontsize 6 on the basis that 6
  4659. times 8k = 48k. Now, as I’m sure you will all realise, that didn’t work
  4660. because fontsize is specified in 4k chunks, not 8k or 32k.
  4661. •   Logotron printer dump − Logotron told one of our readers that there
  4662. is no printer dump for their Archimedes Logo. However, our Printkey Dump
  4663. program (issue 1.10, page 45) works fine.
  4664. •   RX80 dumps for Artisan − Clares originally said that Artisan
  4665. wouldn’t dump pictures on an Epson RX-80 and that the FX-80 was the
  4666. ‘base-line’ printer as far as they were concerned. How-ever, they have
  4667. since produced a ‘help-sheet’ of the pokes needed to convert the dump to
  4668. an RX-80.
  4669. 2.3
  4670. The gist of the change is as follows;
  4671. 2.3
  4672. If your printer will support CRT mode graphics, (ESC “*”,4) then use it.
  4673. If not then use ESC “K” for normal single density bit image mode, but
  4674. CRT mode gives a much better image and less distortion.
  4675. 2.3
  4676. *LOAD ART6 10000
  4677. 2.3
  4678. !&10EC5=&042A1B for CRT or =&4B1B00 for single density
  4679. 2.3
  4680. *SAVE ART6 10000 +12FF
  4681. 2.3
  4682. *SETTYPE ART6 &FF8
  4683. 2.3
  4684. The resultant print produces oval circles(!) but can be triggered from
  4685. Artisan.
  4686. 2.3
  4687. •   Monochrome displays on the 440 − Brian Cowan writes, I was lucky
  4688. enough to have one of the first release of 440’s which I used with one
  4689. of the Acorn colour monitors. I know that the resolution of these
  4690. monitors is nothing fantastic, but it seemed sensible to purchase them
  4691. together; at that stage I was not sure what connection standards were
  4692. used.
  4693. 2.3
  4694. About six months later I had reason to use an ordinary mono monitor on
  4695. the 440, and imagine my horror when I found it did not work. Ordinarily
  4696. I would have sent the computer back to the supplier to have it fixed
  4697. under warranty. However, the machine was in constant use so we decided
  4698. to live with it, using only a colour monitor.
  4699. 2.3
  4700. I now discover that there is nothing wrong with the 440!! When these
  4701. machines leave the factory they are not configured to drive standard
  4702. resolution mono monitors, they are set up for high res monitors. Inside
  4703. the case, on the PCB are some jumpers that must be set according to what
  4704. sort of monochrome monitor you want to drive.
  4705. 2.3
  4706. At the north-west corner of the board is a plug called PL2. I think this
  4707. does nothing except carry some pin connector links. A little further
  4708. southwards on the board are some pins labeled LK13 and LK14. If you want
  4709. to drive a standard resolution monochrome monitor, you must take two
  4710. links from PL2 and place one on LK13 and the other on LK14.
  4711. 2.3
  4712. Connection to a monochrome monitor on 440 machines is through two BNC
  4713. sockets on the back panel. One socket is marked SYNC and the other is
  4714. labeled MONO. For high resolution, both of these are used but for
  4715. standard resolution only the SYNC socket is used. Since this is a BNC
  4716. socket rather than the phono socket on the 300 series, you will have to
  4717. make up or purchase a special lead or a converter.
  4718. 2.3
  4719. For those of you contemplating the purchase of a multisync monitor for
  4720. those extra modes etc. you will be happy to hear that the Archimedes
  4721. connect-ions are the same as those on PC machines. This means that if
  4722. the monitor comes with a lead, it will probably be suitable for the
  4723. Archimedes. This is certainly true for the Taxans that I use. Inciden
  4724. tally, concerning the Taxans, some have rather dull pictures. Has anyone
  4725. tried brightening them up?
  4726. 2.3
  4727. •   Desktop calculator − “The calculator on my desktop doesn’t respond
  4728. to the keyboard whereas your review of Arthur 1.2 said it did.” So I
  4729. tried to work the calculator with the keyboard keys myself and it didn’t
  4730. seem to work. Then I realised that it won’t respond until you enable it
  4731. for keyboard input by clicking on it with the mouse. The top bar then
  4732. goes red and it’s ready to take input from either the main keyboard or
  4733. the numeric pad, delete being the equivalent of clear. Easy when you
  4734. know how.
  4735. 2.3
  4736. •   Conditional booting. If you have a boot file in the RFS on battery-
  4737. backed RAM, you may want to do some things when you first switch on but
  4738. not every time you do <ctrl-break>. You can achieve this by making it
  4739. conditional on the monotonic timer, i.e. the timer which is initialised
  4740. at switch-on and not reset in any other way. To read this timer, use SYS
  4741. &42 TO T% where T% then gives the time in centiseconds so you can say
  4742. that IF T%<200 (say) then do the switch-on bits and pieces ELSE do the
  4743. <ctrl-break> things.
  4744. 2.3
  4745. •   CharDes fonts − If you have fonts produced by CharDes, you can
  4746. convert them for use on the Archimedes as follows. Enter 65Arthur and
  4747. type
  4748. 2.3
  4749. *spool thin2
  4750. 2.3
  4751. *thin
  4752. 2.3
  4753. *spool
  4754. 2.3
  4755. where thin is the name of the original font file and thin2 is going to
  4756. be the new file. Then use a text editor (such as the Master128’s “Edit”)
  4757. and edit out the first and last line (i.e. the *thin and *spool). Then
  4758. resave as thin2 and settype it as &FF7 (BBC font). When you need it,
  4759. just type *thin2. If you do a *SHOW, you will see that the load and run
  4760. actions of a file type &FF7 is to *PRINT it − which is just what you
  4761. want.
  4762. 2.3
  4763. •   Command files − In order to disable vdu output during a command file
  4764. e.g. the !boot file, try:
  4765. 2.3
  4766. *echo ||U
  4767. 2.3
  4768. ...
  4769. 2.3
  4770. ...
  4771. 2.3
  4772. *echo ||F
  4773. 2.3
  4774. Two string escape characters are needed (as I’ve explained in a previous
  4775. tip) so that the final command executed is *echo |U
  4776. 2.3
  4777. i.e. <ctrl-U>. This issues a VDU 21 which disables vdu output until a
  4778. VDU 6 is issued <ctrl-F>.
  4779. 2.3
  4780. This is similar to the ECHO OFF command of MS-DOS. Indeed if the string
  4781. used is:
  4782. 2.3
  4783. *echo ||U|H|Hoff
  4784. 2.3
  4785. then all that is visible is “echo off” which explains why nothing else
  4786. is visible to the user and also hides the control code sequence used.
  4787. The “compiled” string is then *echo |U<8><8>off. One side effect is that
  4788. two line feeds will occur so if this is undesirable a couple of reverse
  4789. line feeds can be incorporated with
  4790. 2.3
  4791. *echo ||U|H|Hoff|K|K
  4792. 2.3
  4793. Note that the use of single string escape characters means that the
  4794. cursor control codes will have immediate effect whereas the <ctrl-U>
  4795. will only be issued when the echo command is executed.
  4796. 2.3
  4797. The double string escape characters are only needed for use with *Build,
  4798. if a text editor is used then only single characters are needed but the
  4799. control codes must be input directly, e.g. so they appear as inverse
  4800. video in TWIN, for those cases where the affect is immediate.
  4801. 2.3
  4802. (Sorry if this sounds a bit confusing but the difference between two and
  4803. one |’s, and when to use which, is an entire discussion point on its
  4804. own. Perhaps this could be a short article − it is important whenever
  4805. command files issue messages etc.) Clifford Hoggarth.
  4806. 2.3
  4807. •   Quick *COPYing and *WIPEing − When you enter a wild card *COPY or
  4808. *WIPE on a list of files such as TEST1, TEST2, TEST3, etc. you are
  4809. presented with a list of options at the end of the copy or wipe
  4810. statement
  4811. 2.3
  4812. *COPY :0.TEST* :1.TEST*
  4813. 2.3
  4814. Copy file adfs::0.TEST1 as adfs::1.
  4815. 2.3
  4816. TEST1 (Y/N/Q/A)?
  4817. 2.3
  4818. etc.
  4819. 2.3
  4820. The option Y, N, Q and A mean the following :-
  4821. 2.3
  4822. Y − means copy that file
  4823. 2.3
  4824. N − means don’t copy that file
  4825. 2.3
  4826. Q − means quick copy all file with the wild card specification after and
  4827. including that one with no further confirmation prompts
  4828. 2.3
  4829. A − means abort from copying
  4830. 2.3
  4831. The *WIPE option works in a similar manner but deleting.
  4832. 2.3
  4833. •   Stereo Speakers − After reading the hint in Archive 1.2 about adding
  4834. a pair of Tandy amplified speakers, I promptly rushed off ‘to town’.
  4835. They had just run out of stock, because the £25 price-tag was a special
  4836. offer. However Tandy were very helpful and ordered me a pair which
  4837. arrived within a week and which at £29.95 are still excellent value.
  4838. However, a set of alkaline batteries was quoted as £7.95!! Instead, a
  4839. surplus old calculator mains adaptor and two power plugs (30p each from
  4840. a local electronics shop) provided a cheaper source of power. If you
  4841. don’t have a spare one, a new power supply from Rapid Electronics costs
  4842. less than £4. The magic moment arrived and I switched on! The buzz from
  4843. the speakers was horrific!, but soon drowned by mayhem and destruction
  4844. from Zarch, which in turn was swamped by the dulcet tones of ‘her
  4845. ladyship’ complaining from the other end of the house about the volume!
  4846. 2.3
  4847. Back to the drawing board − two capacitors, recovered from an old tape
  4848. recorder smoothed the power supply output and banished the buzz. The
  4849. solution to the lack of volume control was to add two potentiometers.
  4850. Whilst I was at it, I decided to wire the volume controls into a socket,
  4851. so that Zarch could be enjoyed at a reasonable volume late at night
  4852. through a pair of personal stereo headphones as well as through speakers
  4853. at a more civilised hour. An hour’s work, a couple of pounds and I now
  4854. have glorious stereo sound, at a reasonable volume!
  4855. 2.3
  4856. The diagrams below show the set up. A twin pot could be used instead of
  4857. two single ones, so that both speakers are controlled from one knob. Any
  4858. value pot from 100 ohms up to about 4.7k ohms will work, but 100 ohms is
  4859. ideal, though 470 ohm pots are easier to obtain. Logarithmic pots are
  4860. best, but linear ones work fine and are again are easier to obtain. The
  4861. big capacitor can be anywhere in the region shown (2500 microfarads/30V)
  4862. − the small one takes out the higher frequencies and again its value
  4863. (220 microfarads/16V) is not critical.
  4864. 2.3
  4865. It’s worth noting that the speakers cut off only after a minute or two
  4866. if there is no sound being produced. Presumably there is a small
  4867. capacitor inside which needs to run down first. Similarly, they need a
  4868. certain minimum signal for a very short time in order for them to switch
  4869. back on. David Kent
  4870. 2.3
  4871. •   Ultra-cheap sound amplification − Maplin Electronics (0702−554161)
  4872. have an amazing offer including a pair of walkman-type headphones AND a
  4873. pair of monitor speakers for just £3.95! I don’t know how good they are,
  4874. but at that price, you can’t go far wrong. (Oh, there’s a handling
  4875. charge of 50p and a postage charge of 50p − still, it’s not bad.)
  4876. 2.3
  4877. •   View “OC” Command − In View B3.0, one of the highlights can be set
  4878. to 27 instead of the normal 128 for underline and 129 for emphasise. In
  4879. doing this, commands may be made directly to the printer as in the
  4880. Wordwise OC command. For example, to set highlight 1 to 27
  4881. 2.3
  4882. <Shift-f8> HT<return> 1 27 <return>
  4883. 2.3
  4884. On pressing <f4> (underline) the next character will be sent to the
  4885. printer as a command, i.e. ShFn4x1(-x1) will turn on NLQ mode (on some
  4886. Epson compatible printers). This system seems to work for most commands,
  4887. but some commands need an ASCII ,1 so to get round this set highlight
  4888. key 2 (emphasise) as 1 and type ShFn4wShFn5 (-x*) to turn on double
  4889. height for example. This does have the disadvantage that things can’t be
  4890. turned on and off in the same line as you have to set highlight 2 back
  4891. to 0 to turn it off.
  4892. 2.3
  4893. •   Two ARM Code Assembly Macros − (Richard Averill) − Here are two
  4894. useful macros for use in the BASIC V ARM assembler. They both use the
  4895. same method of loading 32-bit words into a specified register, which is
  4896. detailed below:
  4897. 2.3
  4898. Originally, I had the idea that if I used the following piece of code:
  4899. 2.3
  4900. LDR <reg>, [PC, #-4] !
  4901. 2.3
  4902. EQUD <value>
  4903. 2.3
  4904. then the processor would load the value and jump on to the next
  4905. instruction. However, what actually happens is that the value is loaded
  4906. and the ARM tries to execute the value as an instruction. If the high-
  4907. byte of the value is zero, then this will not cause a problem, but it is
  4908. not advisable to use routines that are not totally water-tight.
  4909. 2.3
  4910. Here is the improved code:
  4911. 2.3
  4912. LDR <reg>, [PC]
  4913. 2.3
  4914. MOV PC, PC
  4915. 2.3
  4916. EQUD <value>
  4917. 2.3
  4918. which only takes one more word of code and works all the time. The MOV
  4919. PC,PC is there to make sure that the ARM executes the instruction that
  4920. is in the pipeline, and not the instruction in <value>.
  4921. 2.3
  4922. Using these ideas, I have developed two useful routines detailed below:
  4923. 2.3
  4924. DEF FNload(reg%, val%)
  4925. 2.3
  4926. [ OPT opt% AND &E
  4927. 2.3
  4928. LDR reg%, [PC]
  4929. 2.3
  4930. MOV PC, PC
  4931. 2.3
  4932. EQUD val%
  4933. 2.3
  4934. ] : =opt%
  4935. 2.3
  4936. DEF FNadr(reg%, adr%)
  4937. 2.3
  4938. [ OPT opt% AND &E
  4939. 2.3
  4940. FNload(reg%, adr%-P%-20)
  4941. 2.3
  4942. ADD reg%, PC, reg%
  4943. 2.3
  4944. ] : =opt%
  4945. 2.3
  4946. As you can see, the macros can be used as any other instruction in the
  4947. assembler as such:
  4948. 2.3
  4949. MOV R0, #123
  4950. 2.3
  4951. FNload(1, &12345678)
  4952. 2.3
  4953. FNadr(2, pointer)
  4954. 2.3
  4955. SWI “OS_Anything”
  4956. 2.3
  4957. A demonstration program is given (on the program disc) to illustrate the
  4958. use of these macros.
  4959. 2.3
  4960. •   Running ViewPlot under 65Arthur − Richard Averill − Listed here are
  4961. the changes needed to make ViewPlot ‘harness the power of the Archi
  4962. medes!’. They will tidy the programs up, allowing ViewPlot to run in any
  4963. mode and to print and save screens. A *Exec file of these changes is
  4964. provided on the monthly disc.
  4965. 2.3
  4966. To use this file, transfer the ViewPlot disc onto ADFS into a directory
  4967. such as ‘ViewPlot’. You can either create a text file of these commands
  4968. (with *Build or a text editor) or you can type the commands in yourself.
  4969. Either way, you should make sure that you are in the ViewPlot directory
  4970. when you try to convert the programs.
  4971. 2.3
  4972. *|Running ViewPlot under 65Arthur.
  4973. 2.3
  4974.  (C) Richard Averill, 1988.
  4975. 2.3
  4976. *BASIC
  4977. 2.3
  4978. LOAD “ViewPlt”
  4979. 2.3
  4980. 390
  4981. 2.3
  4982. SAVE “ViewPlt”
  4983. 2.3
  4984. LOAD “V__D”
  4985. 2.3
  4986. 730 IF M=248 OSCLI(“Screensave Image”)
  4987. 2.3
  4988. :PROC2(R%)
  4989. 2.3
  4990. SAVE “V__D”
  4991. 2.3
  4992. LOAD “V__M”
  4993. 2.3
  4994. 1140 DEF PROC0:VDU 28,0,23,39,5:CLS
  4995. 2.3
  4996. 1190 REPEAT
  4997. 2.3
  4998. 1200 INPUT “Enter screen mode (not
  4999. 2.3
  5000.  text) ? “ M%
  5001. 2.3
  5002. 1210 UNTIL FNcheckmode(M%)=TRUE
  5003. 2.3
  5004. DELETE 1220,1290
  5005. 2.3
  5006. 3000 DEF FNcheckmode(mode%)
  5007. 2.3
  5008. 3010 LOCAL col$,ok%
  5009. 2.3
  5010. 3020 ok%=FALSE
  5011. 2.3
  5012. 3030 IF mode%=0 OR mode%=8 OR mode%=12
  5013. 2.3
  5014.  OR mode%=15 OR mode%=18 OR mode%=19 OR mode%=20 THEN C%=16:ok%=TRUE
  5015. 2.3
  5016. 3040 IF mode%=1 OR mode%=4 OR mode%=9
  5017. 2.3
  5018.  OR mode%=13 THEN C%=32:ok%=TRUE
  5019. 2.3
  5020. 3050 IF mode%=2 OR mode%=5 OR mode%=10
  5021. 2.3
  5022.  THEN C%=64:ok%=TRUE
  5023. 2.3
  5024. 3060
  5025. 2.3
  5026. 3070 col$=“04”
  5027. 2.3
  5028. 3080
  5029. 2.3
  5030. 3090 IF mode%=0 OR mode%=4 OR mode%=18
  5031. 2.3
  5032.  THEN col$=“04”
  5033. 2.3
  5034. 3100 IF mode%=1 OR mode%=5 OR mode%=8
  5035. 2.3
  5036.  OR mode%=19 THEN col$=“15”
  5037. 2.3
  5038. 3110 IF mode%=2 OR mode%=9 OR mode%
  5039. 2.3
  5040. =12 OR mode%=20 OR mode%=10 OR mode%=13 OR mode%=15 THEN col$=“2”
  5041. 2.3
  5042. 3120 IF ok%=TRUE THEN OSCLI(“LOAD Col”
  5043. 2.3
  5044.  +col$+“ 2600”)
  5045. 2.3
  5046. 3130 =ok%
  5047. 2.3
  5048. SAVE “V__M”
  5049. 2.3
  5050. LOAD “V__P”
  5051. 2.3
  5052. 250DATA 0,0,0,0,0,0,2,4,4,4,2,16,8,1
  5053. 2.3
  5054. ,16,0,0,0,2,2,16,4,1,16,0,0,0,2,
  5055. 2.3
  5056. 1,16,0,0,0,0,0,0,2,8,2,2,4,4,2,
  5057. 2.3
  5058. 2,16,2,1,16,2,8,2,2,8,2
  5059. 2.3
  5060. 1740DEFPROCJ(b%):e%(b%)=0:ONM%+1GOTO
  5061. 2.3
  5062. 1770,1810,1880,1880,1770,1810,1880, 1880,1810,1880,1880,1880,1880,1880
  5063. 2.3
  5064. ,1880,1880,1880,1880,1880,1770
  5065. 2.3
  5066. ,1810,1880,1880,1770,1770
  5067. 2.3
  5068. 2070DEFPROCE:FORb%=1TO8:e%(b%)=b%?
  5069. 2.3
  5070. (&2608+((a%-1)*2+a%-10)*8-1):ONM%+1
  5071. 2.3
  5072. GOTO 2110,2150,2200,2200,2110,2150,
  5073. 2.3
  5074. 2200,2200,2150,2200,2200,2200,2200, 2200,2200,2200,2200,2200,2200,
  5075. 2.3
  5076. 2110,2150,2200,2200,2150,2150
  5077. 2.3
  5078. SAVE “V__P”
  5079. 2.3
  5080. •   Cheap colour monitors − Peter Sykes bought a Commodore 1084 monitor
  5081. which seems to be identical to the Phillips 8833 but cheaper. He got his
  5082. from Eazyprint in Staines, Middlesex for £240, around £20 less than the
  5083. cheapest he could find the Phillips 8833. (There’s an Acorn one for sale
  5084. in the small ad’s, but there must be other folk by now who are up-
  5085. grading to multi-syncs and have monitors for sale − send in your small
  5086. ad’s folks − no charge.)
  5087. 2.3
  5088. •   Use of Archimedes on Econet − Copying ADFS format discs to NET and
  5089. vice-versa, no utility is needed as Archimedes has it all built in:-
  5090. 2.3
  5091. *COPY -adfs-$.* -net-$.whatever.* QRC
  5092. 2.3
  5093. Here ADFS is the source, NET is the destination. The ‘whatever’ is the
  5094. chosen destination directory, or directory path (e.g. replace ‘whatever’
  5095. with ‘fred.mary.utils’) The * is to indicate all files. The Q indicates
  5096. QUICK copying using all available RAM. This damages resident programs
  5097. but considerabley speeds the copying process. It is also almost
  5098. essential if using early versions of the Econet Software Modules (NETFS,
  5099. ECONET) due to bugs in these which cause ‘Not Listening’ messages. Later
  5100. versions do not suffer this. The R to indicates recursive copying of
  5101. sub-directories. The C turns OFF confirmation so that copying occurs for
  5102. all files without question.
  5103. 2.3
  5104. Simple modifications to the command line allow copying in the reverse
  5105. direction.
  5106. 2.3
  5107. (This was sent in by Michael Ryan, editor of the Econet User Group
  5108. Magazine (NEUS) which carries regular articles on Archimedes on the
  5109. network (and many less esoteric matters as well). We have also been
  5110. licensed by Acorn to provide free upgrades to Econet software modules
  5111. for those unable to obtain them elsewhere. Econet User Group, Balkeerie
  5112. Cottage, Eassie by Forfar, Angus, DD8 1SR.)
  5113. 2.3
  5114. FWP Hints & Tips
  5115. 2.3
  5116. compiled by Mike Hobart
  5117. 2.3
  5118. •   Changing default drive − those of you with dual drives may want to
  5119. be able to get FWP to default to looking for data on drive 1. To do
  5120. this, all you do is load $.library.1wp and change the line that sets up
  5121. the documents directory to:
  5122. 2.3
  5123. *set FirstWordPlus$Docs :1.$.
  5124. 2.3
  5125. •   Saving to a fresh disk − If you need to save your work onto a fresh
  5126. disk, you may have difficulty in persuading the save to work: you get
  5127. silly messages about the disk being write-protected and directories not
  5128. being present. This is very frustrating if you have just written the
  5129. first chapter of your bestseller. Try “Save as...”, taking special care
  5130. either to see that you are in the correct directory as specified in the
  5131. directory box at the top of the save window or create a new file in the
  5132. root directory by clicking repeatedly on the X icon until you are left
  5133. with only a “*”. Thanks to Peter Tettmar, on whose solution is differ
  5134. ent, but less convenient as you have to anticipate the problem!
  5135. 2.3
  5136. •   Form feeds in the wrong places − Edit your printer driver (the “hex”
  5137. directory one) to inactivate the “vertical tab to line” feature. This is
  5138. done by placing a “*” at the beginning of the line (line no 4, which
  5139. should now read *4, 1B,42,80,0,B or near). If you have serious troubles
  5140. with irrational formfeeds, try setting the CONFIGURE IGNORE of the
  5141. battery-backed RAM to prevent the computer ever sending to crucial code
  5142. to the printer. (Thanks to David Adamiak and from him to GST Holdings).
  5143. 2.3
  5144. •   Use of IBM fonts − Steve Jones points out that there can be
  5145. advantages in using the IBM font set, if your printer supports it. The
  5146. monthly disk con-tains his very full instructions and programs. The main
  5147. reason for using the IBM fonts is the availability of certain symbols
  5148. for maths and graphical characters. These can be especially useful for
  5149. designing forms.
  5150. 2.3
  5151. •   Graphics problems (e.g. that white is printed grey etc.) can be
  5152. cured by preparing the graphics in 1st Word palette. For Artisan, copy
  5153. 1stword’s Resources.1wp.!palette as artisan.1wppal (or what takes your
  5154. fancy) on the Artisan disk, then boot up Artisan, grab the disk ikon and
  5155. finally select the new palette. The result is not artistic, but a quick
  5156. roller brush over the background with white, followed by the artwork in
  5157. e.g. black produces a picture you can import and have printed correctly.
  5158. The reason this works is that the graphics dump routine in 1st Word
  5159. assumes the use of the program’s own palette, or at least that it is
  5160. trying to produce a paper version of what you see on the screen. It is,
  5161. incidentally, quite an intelligent and quick dump, which checks to see
  5162. if there are pixels to print before printing a line, and issuing a
  5163. linefeed if not.
  5164. 2.3
  5165. •   Conversion from WWPlus − The following hint might be useful to
  5166. people still trying to convert WW+ file to 1WP. The convert program
  5167. published in Archive does a wonderful job. However, I found it a bit
  5168. irksome having to edit out all the ‘US’s and ‘UE’s etc which are left
  5169. after the program has dealt with the green and white embedded commands.
  5170. (This just goes to show how quickly we start to take things for
  5171. granted!!). I also found that it was impossible to reformat the text to
  5172. a new line length. The latter problem seemed to be that 1WP ended lines
  5173. with &0E, whist converted WW+ files ended with the last letter of the
  5174. last word on the line.
  5175. 2.3
  5176. The solution to both problems is as follows:
  5177. 2.3
  5178. 1   SPOOL out the WW+ file, using Option 8 (This removes all embedded
  5179. commands and centres text and produces indents and TABs)
  5180. 2.3
  5181. 2   Reload the spooled file and use Search & Replace to change all
  5182. double returns to @@ (or any other unused combination of letters)
  5183. 2.3
  5184. 3   Change all of the remaining single returns to <space>-return
  5185. 2.3
  5186. 4   Change all of the @@s (or whatever) to <space>-return-return
  5187. 2.3
  5188. 5   SAVE the modified file using Option 1
  5189. 2.3
  5190. 6   Run the SAVED file through the convert program
  5191. 2.3
  5192. The effect of 2, 3 and 4 is to save the paragraph breaks, but end all of
  5193. the lines with a space. The result is a file with no extra ‘remains’ of
  5194. embedded commands, and which will reformat correctly in First Word Plus.
  5195. 2.3
  5196.  
  5197. H & T are a bit thin on the ground this month because this issue is
  5198. being finished before Christmas so I get some time off and it’s only a
  5199. couple of weeks since I closed the December issue, so not much has come
  5200. in yet. Most of the H & T that we have got were sent in by Anton Carver.
  5201. Thanks Anton!
  5202.  
  5203. 2.4
  5204. •   Using function keys − If you want to get the function keys to
  5205. produce ASCII codes, say, 200, 201, 202 etc, you use *FX 225,200 but
  5206. this only works for keys <f0> (the print key) to <f9>. If you want to
  5207. use <f10> upwards, you need to use *FX 221,200. This also makes <insert>
  5208. into the equivalent of <f13> i.e. it generates, in this case, ASCII 213.
  5209. 2.4
  5210. •   Troubles with Mitsubishi Drives? − Yes, there are problems with some
  5211. of the new 5.25” Mitsubishi drives with some of the 5.25” disc inter
  5212. faces, but they can be solved. The problem is the use of pin 2 on the
  5213. interface. It was not used on the BBC micro, but on the new Mitsubishi
  5214. drives it is used for DC interrupt. The solution is to put a little bit
  5215. of masking tape on the edge connector inside the drive mechanism so that
  5216. it doesn’t make contact with the p.c.b. Pin 2 is on the top of the board
  5217. at the outside edge.
  5218. 2.4
  5219. •   Programmable reset − A hang-over from the BBC micro is that if you
  5220. program function key 10, you will find that if you press <reset>,
  5221. function key 10 will be executed! If you don’t know about this, it can
  5222. come as something of a shock, but it could be that you would want to
  5223. make use of it if you were, say, developing a machine code program which
  5224. kept hanging up the machine and forcing you to press <reset>. You could
  5225. program it as *KEY 10 *BASIC|MOLD|MEDIT .|M and it would jump you back
  5226. into editing the program at the point where you were.
  5227. 2.4
  5228. •   Is it still going? − If you are doing some heavy machine code
  5229. programming and want to know if the computer is still working or whether
  5230. you have locked it up completely, try pressing the caps lock and/or
  5231. scroll lock keys and if they are still responding, your computer’s not
  5232. dead yet! The caps and scroll lock LED’s are controlled by the computer
  5233. in response to the key presses, so if they are working, it tells you
  5234. that the processor is still reponding to interrupts.
  5235. 2.4
  5236. •   Using ARMBE − It is useful to be able to enter ARMBE at the point of
  5237. the last error. Here is a program which sets up function key 4 so that
  5238. it enters ARMBE at the point where the error occurred or, if no error
  5239. then it enters where you were last editing by using “EDIT .”.
  5240. 2.4
  5241. 10 *set key$edit IF ERL=0 THEN OSCLI (|“KEY 4 *FIXKEY4||mEDIT . ||m|”)
  5242. ELSE OSCLI(|“KEY 4 *FIXKE Y4||mEDIT |” + STR$(ERL) + |“||m |”)|mMISTAKE
  5243. |m*FX138,0,132|m
  5244. 2.4
  5245. 20 *set alias$fixkey4 set key$4 |<key$edit>
  5246. 2.4
  5247. 30 *fixkey4
  5248. 2.4
  5249. •   REM’s − Although the User Guide says that REM statements are ignored
  5250. by BASIC, this is not completely true in BASIC V. This is because the
  5251. block conditional IFÉTHENÉELSEÉ ENDIF requires the THEN to be the last
  5252. statement on the line. Adding a REM to the end of the line will change
  5253. the flow of control, thus:
  5254. 2.4
  5255. >LIST
  5256. 2.4
  5257.  10 OK%=TRUE
  5258. 2.4
  5259.  20 IF NOT OK% THEN
  5260. 2.4
  5261.  30   PRINT “Wrong!”
  5262. 2.4
  5263.  40 ELSE
  5264. 2.4
  5265.  50   PRINT “Right”
  5266. 2.4
  5267.  60 ENDIF
  5268. 2.4
  5269. >RUN
  5270. 2.4
  5271. Right
  5272. 2.4
  5273. >LIST
  5274. 2.4
  5275.  10 OK%=TRUE
  5276. 2.4
  5277.  20 IF NOT OK% THEN :REM Danger!
  5278. 2.4
  5279.  30   PRINT “Wrong!”
  5280. 2.4
  5281.  40 ELSE
  5282. 2.4
  5283.  50   PRINT “Right”
  5284. 2.4
  5285.  60 ENDIF
  5286. 2.4
  5287. >RUN
  5288. 2.4
  5289. Wrong!
  5290. 2.4
  5291. •   MODE3/6 gaps − There is an undocumented difference between the way
  5292. that the gaps between lines are coloured in the 25-row modes. In modes 3
  5293. and 6, the gaps are the border colour and in modes 11, 14 and 17, they
  5294. are the background colour.
  5295. 2.4
  5296. By experimenting with SWI“OS_ReadMode Variable”, I discovered that bit 3
  5297. of variable 0 (Modeflags) indicates the condition. If the bit is set to
  5298. 0, the gaps will be background colour and if 1 they are border colour,
  5299. thus:
  5300. 2.4
  5301.  10 For mode%=0 TO 17
  5302. 2.4
  5303.  20   MODE mode%
  5304. 2.4
  5305.  30   VDU 10,0,24,128,0|
  5306. 2.4
  5307.  40   SYS“OS_ReadModeVariable”
  5308. 2.4
  5309. ,MODE,0 TO ,,modeflag%
  5310. 2.4
  5311.  50   PRINT “Mode= ”;MODE
  5312. 2.4
  5313.  60   IF (modeflag% AND (1<<3))
  5314. 2.4
  5315. <>0 THEN t$=“Border” ELSE t$=“Background”
  5316. 2.4
  5317.  70   IF (modeflag% AND (1<<2))
  5318. 2.4
  5319. <>0 THEN t$=“No”
  5320. 2.4
  5321.  80   PRINT t$;“ gaps”
  5322. 2.4
  5323.  90   wait%=GET
  5324. 2.4
  5325. 100 NEXT
  5326. 2.4
  5327. •   Auto linefeed − Some software packages, like First Word Plus for
  5328. instance, insist that you set your printer so that it does not generate
  5329. auto-matic linefeeds. This means that if you list a BASIC program with
  5330. lines that are longer than the carriage length, the line wraps round and
  5331. is overprinted. To avoid this and the difficulty of fiddling with dip
  5332. switches, use the BASIC command WIDTH before printing. To do this, type
  5333. WIDTH <carriage length> (e.g. WIDTH 80) before printing and WIDTH 0 to
  5334. reset to the default setting after printing.
  5335. 2.4
  5336.  
  5337.  
  5338. •   How to wipe a disc clean − Having explained in H & T in issue 2.1
  5339. how to use *LIB“” and *WIPE * ~C to wipe a disc clean, here is the
  5340. really quick way! Take a blank disc and do a *BACKUP onto the disc to be
  5341. purged − takes about 10 seconds all together, even with only a single
  5342. drive!
  5343. 2.5
  5344. •   Microlink Modem connections − We have at last sorted out the
  5345. connections necessary for the Microlink Multispeed modem. The problem is
  5346. that it seems to need two different connections depending on whether you
  5347. are using ArcTerm or Hearsay. Anyway, here are some connections that
  5348. seem to work OK. ArcTerm version first:
  5349. 2.5
  5350. Modem    Computer
  5351. 2.5
  5352. GND   1
  5353. 2.5
  5354.             }Ñ   5   GND
  5355. 2.5
  5356. GND   7
  5357. 2.5
  5358. RXD   2   Ñ   3   TXD
  5359. 2.5
  5360. TXD   3   Ñ   2   RXD
  5361. 2.5
  5362. RTS   4   Ñ   7   RTS
  5363. 2.5
  5364. CTS   5   Ñ   8   CTS
  5365. 2.5
  5366.             6   DSR
  5367. 2.5
  5368. DSR   6   Ñ{2 .5
  5369.             1   DCD
  5370. 2.5
  5371. DTR   20   Ñ   4   DTR
  5372. 2.5
  5373. Note that the Archimedes DCD is not connected to the modem DCD but to
  5374. the DSR to ensure that it is ON all the time. The modem DCD is only ON
  5375. whilst on-line. Here are the Hearsay connections:
  5376. 2.5
  5377. Modem    Computer
  5378. 2.5
  5379. GND   1  
  5380. 2.5
  5381.           }Ñ   5   GND
  5382. 2.5
  5383. GND   7
  5384. 2.5
  5385. RXD   2   Ñ   3   TXD
  5386. 2.5
  5387. TXD   3   Ñ   2   RXD
  5388. 2.5
  5389. RTS   4   Ñ   7   RTS
  5390. 2.5
  5391. CTS   5   Ñ   6   DSR
  5392. 2.5
  5393. DSR   6 (NC)
  5394. 2.5
  5395. DTR   20 (NC)
  5396. 2.5
  5397. DCD   8   Ñ   9   RI
  5398. 2.5
  5399.             1   DCD}
  5400. 2.5
  5401.             4   DTR} linked
  5402. 2.5
  5403.             8   CTS}
  5404. 2.5
  5405. •   BBC Hard Discs − If you have BBC hard discs that use the 1 MHz bus,
  5406. you can run them on the Archimedes under the new 6502 emulator,
  5407. “65host”, that comes with RISC-OS. All you do is enter 65host and load
  5408. the BBC 1770 ADFS then, assuming you have an I/O podule, connect the
  5409. hard disc to the 2 MHz bus and away you go.
  5410. 2.5
  5411. (Surely it wouldn’t be too difficult, would it(?), to patch it into the
  5412. existing operating system to make the hard discs accessible in native
  5413. mode instead of limiting it to use with the emulator? Could anyone do
  5414. that for us? Ed.)
  5415. 2.5
  5416. •   Naff RTC Month − If you get this error message when running the
  5417. desktop, the chances are that it is time to change your batteries. Acorn
  5418. suggest changing them once a year.
  5419. 2.5
  5420. •   Repton 3 − first a comment − The characters included are exactly the
  5421. same as in the BBC version even though they are mode 9, so it looks like
  5422. mode 5 on the BBC. This is disappointing as the extra resolution and
  5423. colour are wasted unless you redefine the characters − a mammoth task as
  5424. there are 768 altogether! (Phil Armstrong, Doncaster)
  5425. 2.5
  5426. Phil also saysÉ I redesigned the first 48 characters which took quite
  5427. some time and I did encounter a few problems, namely my maps occasion
  5428. ally were wiped or the start position changed. To get round this
  5429. problem, I examined the data files and found:
  5430. 2.5
  5431. &0000 to &10A0   8 Map definitions and colours for each map
  5432. 2.5
  5433. &10A0 to &70A0   48 character definitions
  5434. 2.5
  5435. So if you lose your maps or wish to copy a character set to another set
  5436. of maps, follow these operations:
  5437. 2.5
  5438. *Load Newdata 10000    load new char-acters as saved by editor
  5439. 2.5
  5440. *Save Char 110A0 170A0   save character set alone
  5441. 2.5
  5442. *Load Olddata 10000   load file contain-ing required maps
  5443. 2.5
  5444. *Load Char 110A0   overlay new character set
  5445. 2.5
  5446. *Save Newfile 10000 170A0   save maps and characters together
  5447. 2.5
  5448. Newfile can then be loaded into the game. Changing characters does not
  5449. seem to affect the competition numbers the game gives you.
  5450. 2.5
  5451. •   Games on the 440 − Many games programs will not run on the 440 if
  5452. the screensize is set above 160k, so you should try *Configure Screen
  5453. size 5 before running the game.
  5454. 2.5
  5455. •   Pacmania − Two avid “Pacmaniacs”, Harjit Takshak and Linus Twizell,
  5456. have provided some Pacmania hints:
  5457. 2.5
  5458. Do a *LOAD PACMANIA 10000 then you can set the number of lives with
  5459. ?&102C8 = n (but too many slows the games down) and ?&113D4 = n sets the
  5460. number of points per pill and ?&10234 = n sets the number of credits and
  5461. then CALL &10000 starts off the game.
  5462. 2.5
  5463. •   GammaPlot − It is possible to change the colour of a line on a line
  5464. graph by using the command *SG17,n,128 where n is the GCOL number (e.g.
  5465. 48 = blue). This command can also be used in the Macro mode followed by
  5466. a line with GRAPH (just the graph) or CHART (graph and axis). The colour
  5467. will be saved, along with the graph, to disc.
  5468. 2.5
  5469. •   Printer problems − there have been one or two problems with spurious
  5470. operation of printers, especially with Integrex printers when doing
  5471. graphics dumps. These are caused by timing problems on the Archimedes’
  5472. parallel port control lines and can be solved by an internal circuit
  5473. board modification that Acorn have recognised as a field change, i.e. if
  5474. you are having problems, go to your local Archimedes dealer and ask if
  5475. he can do field change 2002 for you. (D.I.Y. field changes will void
  5476. your warranty, but if you want details anyway, send us an S.A.E.)
  5477. 2.5
  5478. •   Conditional booting (cf Archive 2.3, page 13) Philip Colmer says
  5479. that unfortunately *FX200,2 followed by reset is treated as a power-on
  5480. reset so the monotonic clock is reset. Probably a better way is
  5481. SYS“OS_Byte”,253,0,255 TO break% where break% is 0 for soft break, 1 for
  5482. power-on reset and 2 for a hard break − a bit more reliable than
  5483. checking a clock value.
  5484. 2.5
  5485. •   BCPL on ADFS − J Laski writesÉ I am a BCPL freak: due to the fact
  5486. that ADFS was not available when it was designed, the ROM system causes
  5487. files to be read/written with OSBGET/PUT rather than OSFILE/OSGBPB;
  5488. also, intermediate files in the compiler and editor use names such as
  5489. Backup$ which ADFS abhors.
  5490. 2.5
  5491. To get round this, patch the routine in the ROM (image disk) FSTYPE
  5492. (G39) always to return 7 (see manual p117). In both BCPLARG and BCPLCCG,
  5493. patch the second static load (LLL) in G1 from “OCODE$$” to “OCODE!!”. In
  5494. ED, in G318 patch the static load in G318 about 40 words before the SWL
  5495. near the end of the routine; this can best be found by looking for the
  5496. long forward jump about 30 Cintcodes from the beginning. (N.B. I use an
  5497. extended ED, so have only given rough positions; G318 is the last
  5498. routine called from G1.)
  5499. 2.5
  5500. If you feel you cannot make these changes yourself, and send me a disk
  5501. with proof that you have a legal copy of BCPL and a stamped self-
  5502. addressed mailer, and I will send you a modified version. I would
  5503. appreciate, but do not insist on, any utilities that you think might
  5504. amuse me.
  5505. 2.5
  5506. I am seeking a version of BCPL in ARM code and, if ACORN cannot be
  5507. persuaded to release their version, will do it myself, probably somewhat
  5508. ‘adhocly’. If you have any views on desirable facilities, I should be
  5509. glad to read them. I shall shareware distribute with a licence fee
  5510. requested. (Dr J Laski, 18 Ebury Street, London, SW1W 0LU.
  5511. 2.5
  5512. •   “Colour Printouts − The Easy Way”  − I read with considerable
  5513. interest the article by W R (Basil) Davis on taking 35mm photographs of
  5514. the monitor screen. (Archive 1.9, page 52) I was able to put this to
  5515. practical use recently since I wished to design and produce some
  5516. graphics screens (using GammaPlot) and use these in a conference
  5517. presentation. I did consider using acetates with an overhead projector,
  5518. but decided 35mm slides would be more suitable.
  5519. 2.5
  5520. The following additional comments (which should be read in conjunction
  5521. with the original article) may assist other Archive readers contemplat
  5522. ing taking such pictures:
  5523. 2.5
  5524. 1) Before embarking on photographing any screen displays, it is
  5525. important to remember that any apparently minor “blemish” will be
  5526. magnified considerably if your results are being projected using 35mm
  5527. slides. Careful thought should be given to the screen layout and the
  5528. choice of colours; provided they don’t clash, brighter foreground
  5529. colours are preferable, with black or a dark blue making an ideal
  5530. background. The normal Archimedes text is quite visible when projected
  5531. using 35mm slides; additionally I used a GammaPlot feature to enlarge
  5532. the standard text for titles etc. and, whilst this was quite acceptable
  5533. on a monitor screen, when projected it did appear noticeable “chunky”.
  5534. Next time I will use the Archimedes special fonts with GammaPlot
  5535. instead.
  5536. 2.5
  5537. 2) In choosing the 35mm film to use, one important consideration may be
  5538. the speed with which you wish the results to be returned to you. Whilst
  5539. most colour print films can be developed overnight or even within an
  5540. hour or so, this is not the case with colour slide films. Most have to
  5541. be sent away for processing and a delay of 10−14 days is not untypical.
  5542. If you want colour slide film developed quickly it is best to use (non
  5543. “process paid”) Kodak Ektachrome film which good photographic shops
  5544. should get returned to them within 2−3 days. There are also a few
  5545. specialist laboratories which offer a 2−3 hour service.
  5546. 2.5
  5547. 3) When determining the correct ‘peak white’ exposure using an automatic
  5548. camera, it is possible for the camera’s metering system to be too
  5549. sophisticated! I was using a Minolta 7000 AF camera and the exposure
  5550. settings fluctuated quite rapidly as the monitor screen picture was
  5551. scanned and refreshed. Checking the exposure using a different camera
  5552. confirmed the article’s “if all else fails” assumed exposure settings.
  5553. 2.5
  5554. 4) Focusing may well be perfectly feasible when using a camera with
  5555. auto-focus. I found it best to set the initial focus with a screen
  5556. display visible, rather than a blank screen, and then switch the auto-
  5557. focus off − this is because the Minolta 7000 AF system tries to refocus
  5558. after every picture is taken. In setting the combination of shutter
  5559. speed and aperture, it is probably preferable to err towards the slower
  5560. shutter speed/smaller aperture (higher ‘f’ number) setting as this will
  5561. increase the ‘depth of field’ and give a greater safety margin if the
  5562. focusing is not quite right.
  5563. 2.5
  5564. 5) As mentioned in the original article, a sturdy tripod is virtually
  5565. essential and a remote shutter release (or possibly the camera’s Delayed
  5566. Action feature − if fitted) must be used to avoid camera shake and
  5567. consequent blurred pictures. Additionally, switching off the room lights
  5568. when taking the photographs should avoid any extraneous reflections off
  5569. the monitor screen possibly spoiling the finished results.
  5570. 2.5
  5571. 6) If you are using 35mm slides and the results are to be projected
  5572. using a professional (rather than domestic) slide projector, it is
  5573. definitely worthwhile having the slides ‘glass mounted’ − although this
  5574. does increase the cost! This prevents the heat from the projector lamp
  5575. “popping” the slide and causing part(s) of it to appear out of focus.
  5576. For those who are interested in further reading on the subject, there is
  5577. an article in January 1989’s issue of BBC Acorn User (pages 81-83) on
  5578. the subject of taking photographs of the computer screen, there is even
  5579. advice on taking pictures of commercial games software.    Rob Brown.
  5580. 2.5
  5581.  
  5582. 2.5
  5583. •   Willie Stott has sent in a very complete set of facilities for
  5584. support of the Epson LQ series, including a download font designer. This
  5585. will only be of interest to those with the right hardware, but he has
  5586. used a neat idea to get control of any extra facilities that your
  5587. printer supports, but for which First Word Plus has no category. He
  5588. points out that foreign characters can be used as printer definitions.
  5589. The characters with ASCII values between &E0 and &EE appear on the
  5590. bottom line of the character window and you have to do three things:
  5591. 2.5
  5592. a)   Define the character as a suitable message to the printer in the
  5593. character translation table of the hex file, then turn it into a driver.
  5594. 2.5
  5595. b)   Design suitable character definitions (using VDU23,...) to
  5596. represent the action of the printer so that it is added to the compu
  5597. ter’s character table when FWP is booted up.
  5598. 2.5
  5599. c)   Include your definitions in the FWP boot file before the *key 1 ...
  5600. line.
  5601. 2.5
  5602. •   A tip from an unknown writer (maybe Paul knows who to acknowledge −
  5603. Sorry, no. Ed.): how would you like to be able to produce a spool file
  5604. of your FWP output? What? Not much!? You may be missing something, as
  5605. you could then move the file to another machine and get a printout via
  5606. that machine, e.g. via an IBM or a mainframe. The trick is to *SET
  5607. PrinterType$4 <spoolfilespec> before booting up FWP. Then select
  5608. “network port” from the printer box in FWP. The system variable
  5609. PrinterType$4 holds the pathname for network printer output. The
  5610. <spoolfilespec> needs to include the full adfs:$.filename format.
  5611. 2.5
  5612. •   Someone besides me is the kind of two-fingered typist that hits
  5613. <ctrl> at the same time as <A>. What should our correspondent do? File
  5614. his fingers down? Stick a piece of rough Velcro on the <ctrl> key? No,
  5615. contact the Archive office and have someone write a module to intercept
  5616. <ctrl-A> and make a beep. The trouble is that when you are just feeling
  5617. bold enough to try to modify a bit of assembler to help a friend, you
  5618. should not choose a keyboard buffer intercept. There is no way to try it
  5619. out safely, or even to get a decent service from the debugger as every
  5620. keypress goes via your duff code. You cannot even type “*rmkill”
  5621. successfully. The only key which really works is <reset>. Help!! All
  5622. serious programmers out there: where did I go wrong? Why does the IRQ
  5623. stack pointer unwind so fast? P.S. If you can include a <ctrl-f12> =
  5624. swapcase facility in the module, you will win a large “thank you” and a
  5625. small prize for the best solution. You can start with the PrintKey
  5626. module program in Archive1.10, page 45.
  5627. 2.5
  5628. •   There is a new version of FWP available from Acorn for those whose
  5629. copy does not pause at the ends of each page, even if the flag has been
  5630. correctly set in the printer driver. Return your disk to Customer
  5631. Support, Acorn Computers Ltd., Fulbourn Rd., Cherry Hinton, Cambridge
  5632. CB1 4JN. (Reprinted from BBC Acorn User, Feb ’89, p 10).
  5633. 2.5
  5634. It is rumoured that there is a genuinely new version on its way, perhaps
  5635. to coincide with RISC-OS.
  5636. 2.5
  5637. •   Johnathan Young has a cure for the FWP buzz (the one which comes out
  5638. of the speaker or down the external audio output, and sounds like the
  5639. onset of tinnitus): boot up and then exit EMR’s sound synth package. A
  5640. bit expensive for silence, but you get the music program free! Has
  5641. anyone an explanation or a better solution?
  5642. 2.5
  5643.  
  5644.  
  5645. •   Dacom modem connections − If you want to connect a Dacom modem to
  5646. the Archimedes, try the following connections:
  5647. 2.6
  5648.  Archimedes   Modem
  5649. 2.6
  5650. 2   Ñ   3
  5651. 2.6
  5652. 3   Ñ   2
  5653. 2.6
  5654. 5   Ñ   7
  5655. 2.6
  5656. 9   Ñ   6
  5657. 2.6
  5658. Also link 1, 4 and 8 at the Archimedes end and also 6 to 7. If you are
  5659. using Hearsay 1.04, use the Tandata modem driver, not the Dacom one.
  5660. 2.6
  5661. •   Easy copying − If you have a single drive, try setting
  5662. 2.6
  5663. *set alias$dcopy %0 :0.%0 PQ
  5664. 2.6
  5665. Then you can use, say,
  5666. 2.6
  5667. *dcopy filetocopy
  5668. 2.6
  5669. and this will copy the file “filetocopy” onto another disc on the same
  5670. drive, prompting for disc changes.
  5671. 2.6
  5672. •   Easy compacting − This could apply to a number of commands, but if
  5673. you want, for example, to compact a disc several times, you can use
  5674. *repeat 6 compact which will do a *compact 6 times if you have previ
  5675. ously set an alias for repeat as follows:
  5676. 2.6
  5677. *set alias$repeat if %0>0 then repeat %0-1 %*1|m if %o>0 then %*1
  5678. 2.6
  5679. •   Masked Sprites − The Welcome Disc Sprite Editor was criticised in
  5680. November 88 Archive as not working properly. It does work properly, well
  5681. almost!
  5682. 2.6
  5683. To create a masked sprite, first draw your sprite as normal, then press
  5684. <shift-f9> (create mask) then select the colour that you want to be
  5685. transparent and fill in any areas that are to be transparent. The
  5686. display will show a hatched effect for that colour.
  5687. 2.6
  5688. To plot a masked sprite, remember that you must use a GCOL 8,0 before
  5689. plotting the sprite.
  5690. 2.6
  5691. •   Hard disc Backup program − Paul Hobbs sent in the following
  5692. improvement to last month’s hard disc backup programÉ The very useful
  5693. hard disk backup program in Archive 2.5 can, I think, be improved very
  5694. easily by the addition of the following lines after the line PRINT
  5695. CHR$(13);”Scanning:  “;... etc in PROCaction(). It allows a check to be
  5696. made for directories not to be backed up. The full path name should be
  5697. given as in the example below. Quite a few of the directories on my disk
  5698. are backed up on their own floppies and this modification saves a lot of
  5699. time.
  5700. 2.6
  5701. 1621 RESTORE
  5702. 2.6
  5703. 1622 skip=FALSE
  5704. 2.6
  5705. 1623 REPEAT
  5706. 2.6
  5707. 1624   READ nocop$
  5708. 2.6
  5709. 1625   IF LEFT$(dir$,LENnocop$)
  5710. 2.6
  5711. =nocop$ THEN skip=TRUE
  5712. 2.6
  5713. 1626 UNTIL nocop$=“*** END ***”
  5714. 2.6
  5715. 1627 IF skip=TRUE THEN ENDPROC
  5716. 2.6
  5717. 7000DATA :4.$.1WP.cfg,:4.$.1WP.doc
  5718. 2.6
  5719. .BAK,:4.$.TMP,:4.$.BBCTelSoft
  5720. 2.6
  5721. 7001DATA :4.$.TMP,:4.$.CPROGGIES,
  5722. 2.6
  5723. :4.$.BACKUP,:4.$.1WP.hex
  5724. 2.6
  5725. 7002DATA “*** END ***”
  5726. 2.6
  5727. •   Hard disc squeek − Those who are lucky enough to have hard discs may
  5728. be suffering a continuous high pitched squeal from the drive when the
  5729. machine is switched on. My dealer assured me that it would eventually go
  5730. away, but I lost patience and cured it by lubricating the disc drive
  5731. spindle with WD-40 (or similar). If you remove the disc drive and look
  5732. into the connector end, between the printed circuit board and the drive
  5733. body, you should be able to see a carbon pad mounted on the PCB which
  5734. rubs against the end of the spindle (to earth it and avoid static
  5735. problems). Using an aerosol can fitted with a long tube, a few drops of
  5736. lubricant on this pad will cure the noise. Take care when squirting −
  5737. and naturally no responsibility is accepted!
  5738. 2.6
  5739. •   C routines − When using the tmpnam() or tmpfile() routines in the
  5740. ANSI C library, a directory &.Tmp needs to be created on the current
  5741. drive. This is not present on the master floppy, nor is it created by
  5742. the hard disc install procedure (installHD).
  5743. 2.6
  5744. •   ANSI C command line parameters − page 31 of the manual says that
  5745. “Arguments to main() are the words of the command line, delimited by
  5746. spaces”, but gives no further information. The parameters are actually
  5747. passed in the same way as the Unix2 environment does − for those
  5748. programmers unfamiliar with Unix, the main procedure is called with two
  5749. arguments, which are declared as:
  5750. 2.6
  5751. int main(argc,argv)
  5752. 2.6
  5753. int argc;
  5754. 2.6
  5755. char *argv[];
  5756. 2.6
  5757. {2 .6
  5758.      /* argv[1] points to first
  5759. 2.6
  5760.  parameter
  5761. 2.6
  5762.         argv[2] points to second,
  5763. 2.6
  5764.  etc.
  5765. 2.6
  5766.         Program name is at argv[0] */
  5767. 2.6
  5768. where argc is the number of parameters given (which includes the program
  5769. name, so this will always be at least 1) and argv is an array of
  5770. pointers to the parameters − argv[0] is the command name and argv[1] is
  5771. the first parameter. Parameters are normally separated by spaces, but
  5772. quoted strings are passed as one unit. Some programmers prefer to
  5773. declare argv as:
  5774. 2.6
  5775.    char **argv;
  5776. 2.6
  5777. and use it as a pointer to a list of pointers to the arguments.
  5778. 2.6
  5779. •   BBC Master Edit − If you want to use an image of the Edit ROM (the
  5780. Master version) under 65Arthur, you need a *ALPHABET BFONT before
  5781. running it up, otherwise the on-screen help display looks very confus
  5782. ing. This ROM, by the way, uses CMOS byte 8 (“reserved for Acorn use”)
  5783. in which to save the screen mode and help level.
  5784. 2.6
  5785. •   *COPY without the ‘Q’ − omitting the Q option when copying a file
  5786. forces Arthur to ignore bad sectors or tracks in a file. This allows you
  5787. to recover screens or text files from corrupted discs If you have a
  5788. single drive and don’t want to perform umpteen swaps then proceed as
  5789. follows:
  5790. 2.6
  5791. *DELETE or *COPY (with Q) the other files until you have room for
  5792. another copy of the bad file.
  5793. 2.6
  5794. Then *COPY :0.filenme :0.BADfilenme ~C~PV
  5795. 2.6
  5796. •   Orion loading speed − To speed up the loading, note that there is
  5797. what appears to be a non fatal bug in the “$.Orion.Orion_bas” program.
  5798. It *sload’s a sprite file seven times!
  5799. 2.6
  5800.    LOAD “$.Orion.Orion_bas”
  5801. 2.6
  5802. now look round about line 3000 and you will find the *sload command that
  5803. should be outside the FOR/NEXT loop!
  5804. 2.6
  5805. Edit this and then save the program back onto the disc. (The name at the
  5806. top of the program has an extra ‘n’ at the end which has to be deleted
  5807. from the filename as displayed by the editor if you try to save it with
  5808. <f3>)
  5809. 2.6
  5810. •   Orion − Feel like a laugh? Instead of EDITing “$.Orion.Orion_bas” as
  5811. above, try :
  5812. 2.6
  5813. *con. scr. 20
  5814. 2.6
  5815. *con. spr. 20
  5816. 2.6
  5817. <ctrl-break>
  5818. 2.6
  5819. *DIR Orion
  5820. 2.6
  5821. LOAD “Orion_bas”
  5822. 2.6
  5823. 701 *UNSET BJS
  5824. 2.6
  5825. RUN
  5826. 2.6
  5827. Then when you press <space> to load the game you get a marvelous
  5828. digitised laugh! This is apparently a (very clever) part of the
  5829. protection used in the program.
  5830. 2.6
  5831. •   Extended life for Orion − While the instructions are scrolling up
  5832. the screen try pressing <U>, <L>, <C> and <space> together but in that
  5833. order. It then allows you to select a level at which to start the game
  5834. and you will find that you start with 10 lives & 10 smart bombs!
  5835. 2.6
  5836. •   Zarch cheat − you can get into the cheat mode if, when you first
  5837. start up and are sitting on the landing pad, you press <Q>, <T> and <U>
  5838. together but in that order. You may have to try it a few times. Now <L>
  5839. gives you an extra life, <F> refuels (in mid-air) and <D> toggles the
  5840. auto-pilot.
  5841. 2.6
  5842. •   Zarch − Some new landscapes make this game much better. (Program
  5843. NewWorld on monthly program disc or send S.A.E. for listing.) This
  5844. program works with the original protected version of Zarch as long as
  5845. you have screen size to 160k and other sizes to zero. It uses a
  5846. variation of the PRINTKEY program in one of the earlier Archives.
  5847. (PRINTKEY had a bug in it! P%=0:O%=code% OPT 4-7)
  5848. 2.6
  5849. •   Terramex. For endless lives, with Terramex disc in drive, type:
  5850. 2.6
  5851. *LOAD TERRACODE 9000
  5852. 2.6
  5853. !&CF18=&FAFFDC3E
  5854. 2.6
  5855. !&CF20=&FAFFDC3E
  5856. 2.6
  5857. CALL &9000
  5858. 2.6
  5859. •   Quazer − with the Impact software version of Quazer (which appears
  5860. to be the same as V1.42) type:
  5861. 2.6
  5862. *SETEVAL Quazer%MeatHead 1 -Immortal
  5863. 2.6
  5864. (also try Quazer%Lives, Quazer%Level)
  5865. 2.6
  5866. Then use *Quazer to Run
  5867. 2.6
  5868. •   OS_FSControl problem − David Scott reckons there is a problem with
  5869. the system command for the COUNT operation. The OS_FSControl (&29)
  5870. system command for filing system control with R0 set to 28 (page 262 of
  5871. the Programmers Reference Manual) has a problem which is not apparent
  5872. from the description given.
  5873. 2.6
  5874. If the call is used in a program to obtain values for use by the program
  5875. it is not possible to do this without the information also being printed
  5876. on the screen. This is because bit 8 of the action mask in R3 must be
  5877. set in order to get the correct values returned in R2 and R3.
  5878. 2.6
  5879. The way round this problem is to turn the screen output off using VDU21
  5880. before making the system call and then to turn it back on afterwards
  5881. with VDU6. If a printer is connected then this will also have to be
  5882. temporarily disconnected with VDU3 before and VDU2 after the call.
  5883. 2.6
  5884. •   Potential Electrocution! (Archive 2.5 p19)  − This is a problem with
  5885. most colour monitors. The explanation is as follows... When you turn the
  5886. power off, a static charge forms on the screen surface, creating a
  5887. potential difference of several KV between the monitor chassis and the
  5888. screen surface. If you then pick the monitor up with the screen facing
  5889. your body, the screen is effectively connected to your body, and so the
  5890. potential now exists between you and the monitor chassis, and remains
  5891. there due to the insulating properties of the plastic case. If you then
  5892. touch the chassis via a mounting screw or the rear connector, the
  5893. potential will be discharged, possibly painfully! (I speak from
  5894. experience!)  The answer is to make sure you are touching the chassis
  5895. (e.g. the RGB connector shell) BEFORE picking it up, and keep hold of it
  5896. whilst carrying the monitor. The other answer is to lift and carry it
  5897. with the screen away from you.
  5898. 2.6
  5899. •   Pipedream on RISC-OS − As reported last month, the current version
  5900. of Pipedream DOES work under RISC-OS. All you have to do is *RMKILL
  5901. International to kill the international keyboard. This is because Acorn
  5902. have changed the use of the <alt> key under RISC-OS and Pipedream uses
  5903. this for its drop-down menus.
  5904. 2.6
  5905. •   PC Emulator problems − You may have problems with the computer
  5906. locking up when you are using the PC emulator. This happens sometimes
  5907. when you have a modem connected to the RS423 port which is not switched
  5908. on. I suspect it may be the “unknown IRQ at &00000000” which Arthur
  5909. manages to cope with but perhaps the PC emulator can‘t. Try keeping the
  5910. modem switched on.
  5911. 2.6
  5912. •   Stacked bar charts in Gammaplot − In Gammaplot it is not possible to
  5913. produce directly “stacked” or segmented bar charts such as:-
  5914. 2.6
  5915.  
  5916. 2.6
  5917.  
  5918. 2.6
  5919.  
  5920. 2.6
  5921. Nor is it possible to create directly bar charts with gaps between the
  5922. bars such as-:
  5923. 2.6
  5924.  
  5925. 2.6
  5926.  
  5927. 2.6
  5928.  
  5929. 2.6
  5930. but it is possible to create them indirectly by using a table with (say)
  5931. only 1 in 5 of the values as a non-zero number (i.e. make other gaps by
  5932. introducing zeros in the spreadsheet).
  5933. 2.6
  5934. Multiple bar charts such as:-
  5935. 2.6
  5936.  
  5937. 2.6
  5938.  
  5939. 2.6
  5940.  
  5941. 2.6
  5942.  
  5943. 2.6
  5944. Can be created by producing three (or more) separate graphs from three
  5945. separate spreadsheets and then overlaying one on the other by using
  5946. “Display all graphs” and using the “Window facility to move each (of the
  5947. 3) separately to the desired position. The diagonal lines and any text
  5948. (such as scales or title) is added in “Customise” afterwards.
  5949. 2.6
  5950. I know of NO package which produces segmented bar charts. Presenter will
  5951. produce multiple bars directly but without the flexibility of Gamma
  5952. Plot.
  5953. 2.6
  5954. If you had the patience then you could make several different bar charts
  5955. and use the “Block Move” facility of “Customise” to stack the blocks of
  5956. the bars but it would take time and might be a lot easier in, say,
  5957. Artisan which has a “transparent” colour for use with its sprites.
  5958. 2.6
  5959. (N.B. Overlaid line graphs and multiple pie charts are very easy in
  5960. Gammaplot.)
  5961. 2.6
  5962.  
  5963. 2.7
  5964. •   BBC winchester on Archimedes!! Alan Glover saysÉ I have got it to
  5965. work on the i/o podule under RISC-OS. Here’s what you do: from the
  5966. !65Host directory:
  5967. 2.7
  5968. *RMLOAD !RunImage
  5969. 2.7
  5970. *CACHEROM 0 dnfs
  5971. 2.7
  5972. *CACHEROM 1 ARFS
  5973. 2.7
  5974. *CACHEROM 2 <>.ADFS130
  5975. 2.7
  5976. *EMU.
  5977. 2.7
  5978. Note: Must be ADFS 130 − i.e. a B/B+ version  and you must find an image
  5979. of this yourself as it is not provided with RISC-OS. To use the
  5980. Archimedes’ ADFS type *ARFS.
  5981. 2.7
  5982. The winchester is connected to the 2 MHz bus (theoretically 1 MHz!) on
  5983. the I/O podule as it would be on a BBC.
  5984. 2.7
  5985. •   Configuration problems in Art Nouveau − If you select ‘Configure
  5986. machine’ from the opening menu when you have already configured the
  5987. machine, you lose your old configuration when you quit and you are left
  5988. with Art Nouveau’s own configuration. This is because it doesn’t keep
  5989. track of whether you have already configured it. I was lucky − I had
  5990. written a program long ago that translates a *SPOOLed *STATUS into a
  5991. load of *Configure’s and I keep a copy of this spool on my hard disc at
  5992. all times. You have been warned. Martyn Lovell.
  5993. 2.7
  5994. •   Graphic Writer with a Star SG-10 − If you can have one complaint
  5995. about Graphic Writer (apart from the manual) it’s the printer support. I
  5996. own a Star SG-10 and am trying to let Graphic Writer use it to the full.
  5997. The Star has an NLQ character set, but this cannot be combined with any
  5998. other text style except underlined. So what I want is to adapt the
  5999. printer driver so that it would normally print NLQ and for the other
  6000. effects resort to draft printing. For this, I used the Printcon program
  6001. and gave the following codes:
  6002. 2.7
  6003. Initialisation:
  6004. 2.7
  6005. ESC “@”
  6006. 2.7
  6007. ESC “G”
  6008. 2.7
  6009. ESC “4”
  6010. 2.7
  6011. Which resets the printer, turns on double-strike (gives better bold, but
  6012. you may omit it) and NLQ. Make sure the printer is in IBM mode.
  6013. 2.7
  6014. For configuration (leave the rest the same as a FX80):
  6015. 2.7
  6016. Plain:     27,70,27,52
  6017. 2.7
  6018. Bold:      27,53,27,69
  6019. 2.7
  6020. Italic on: ESC “I”,1
  6021. 2.7
  6022. Italic off:ESC “I”,0
  6023. 2.7
  6024. Note that the input routine of the printcon program doesn’t accept two
  6025. “ESC” sequences on one line, but it accepts two 27’s. The italic codes
  6026. are different from an FX80. In fact, FX80 compatibility turns out to be
  6027. somewhere in between the “Star” and “IBM” modes of the Star SG-10. The
  6028. trick is the plain and bold codes. When Graphic Writer finds a “Bold”
  6029. code it now also sends an NLQ-off code to the printer, which in effect
  6030. makes the printer print in draft, emphasized and double-strike, the
  6031. latter being already set at initialisation. (Yes, it is confusing, isn’t
  6032. it?!) This makes it possible to mix NLQ, bold and italic-bold in the
  6033. text. However, you can’t use italics or super/subscript without bold.
  6034. These just print in normal NLQ.
  6035. 2.7
  6036. The same method should apply to other printers which can’t do everything
  6037. in NLQ.
  6038. 2.7
  6039. Another tip on Graphic Writer is that you should always make any graphic
  6040. as big as possible, i.e. use the whole graphic area, however small you
  6041. want the picture to be. This makes page composition a lot easier and
  6042. also causes less problems with distortion when rescaling.
  6043. 2.7
  6044. •   Interrupt module − The interrupt module by Steve Hoare (Archive 2.6
  6045. p44) is very useful especially, as he states in his article, with First
  6046. Word Plus for creating directories etc. However there is a problem
  6047. associated with *interrupt 0. This is that the pound key also generates
  6048. ASCII 0 (a bug in OS1.2 I think) which means that every time you type a
  6049. ‘pound’, the interrupt module takes over and opens up the OS window.
  6050. However, <ctrl-O> is unused by First Word Plus, so I use *interrupt 15
  6051. instead.
  6052. 2.7
  6053. The module also comes in handy when using a comms program to check on
  6054. filenames, *type logfiles etc, but there is an enhancement that I think
  6055. would make it more useful still. While in the OS window, it is possible
  6056. to type <ctrl-Z> to open up the text window to the full screen which is
  6057. handy, but on exit (in a WIMP program) only the top half of the screen
  6058. is restored. If the source code could be modified to issue a redraw
  6059. request for the whole screen it would be an improvement. Having looked
  6060. at the code, it should be easy to do. Any offers?
  6061. 2.7
  6062. •   Memory shortage on Logistix and First Word Plus − To get round the
  6063. ‘out of memory’ snag which seems to turn up so often with First Word
  6064. Plus and Logistix, if you have the 1.20 PC emulator, use the PC.PC
  6065. startup routine first and then, instead of using the MS.DOS disc, insert
  6066. Logistix instead and <reset>. <Ctrl-break> will then autoboot Logistix
  6067. with a whole 275k of memory free to use.
  6068. 2.7
  6069. •   Mitsubishi Disc Drives − Here are a number of points to bear in
  6070. mind, writes Vic Budd, when adding external disc drives. If, after
  6071. considering these, you feel competent to carry out the work, go ahead.
  6072. If not, it is prudent to entrust the work to an experienced operator to
  6073. avoid frustrations and disappointments.
  6074. 2.7
  6075. There are different circuit board layouts, but the basic checks on the
  6076. drives are the same.
  6077. 2.7
  6078. 1.   Remove link MS if made and change to adjoining position MM.
  6079. 2.7
  6080. 2.   Remove link IU if made and discard it. On some drives there is no
  6081. removable link. However, there is a circuit board foil link, DI, near
  6082. the data cable edge connector, which is connected to pin 2, and this
  6083. should be cut in these instances.
  6084. 2.7
  6085. 3.   Move drive selector link to position 1, 2 or 3 according to which
  6086. command you wish it to respond. (This assumes that the internal drive is
  6087. to be 0).
  6088. 2.7
  6089. 4.   The resistor pack should be in place. On some drives this consists
  6090. of a single plug-in IC type device, whilst on others there is a row of
  6091. DIL pins which should have shorting links inserted.
  6092. 2.7
  6093. 5.   Make sure the data cable is correctly orientated − it will need to
  6094. be at 180 degrees compared to the three and a half inch drive
  6095. connectors.
  6096. 2.7
  6097. 6.   If, as I do, you wish to run a second three and a half inch
  6098. external drive and a five and a quarter inch drive, the connecting cable
  6099. will, of course, need to be turned through 180 degrees to connect the
  6100. drives together.
  6101. 2.7
  6102. 7.   If you decide to use the Archimedes’ power supply, check the
  6103. connections carefully before attaching the cable connectors, making
  6104. quite sure you do not get the 12v and 5v leads confused.
  6105. 2.7
  6106. If you do all these things correctly, you too should have no problems
  6107. with the Beebug lead and will be able to access drives A, B and C under
  6108. the PC Emulator, as well as 0,1, and 2 under ‘native’ Archimedes.
  6109. 2.7
  6110. •   Moving the pointer when it is not linked to the mouse can be greatly
  6111. simplified by using the POINT TO x%,y% command which does exactly what
  6112. is needed (note that you must unlink the pointer from the mouse first
  6113. with MOUSE ON 129). Details are in the User Guide and under HELP POINT.
  6114. Having looked at the relevant part of the PRM, it appeared to be
  6115. impossible to do this, so I decided to have a rummage around in the
  6116. BASIC module. This resulted in the discovery of some undocumented calls!
  6117. Basically these are extensions of OSWORD &15 whereby putting &05 instead
  6118. of &03 at R1+0 causes the pointer position to be set instead of the
  6119. mouse position (see PRM p.133). Also, values of &04 and &06 appear to
  6120. read the mouse and pointer positions respectively, though the code to
  6121. read the mouse position contains a fatal bug in Arthur 1.2 and cannot be
  6122. used! In theory it might be possible to patch it with a copy of the
  6123. UtilityModule in RAM but this module refuses to be RMKILLed. Martin
  6124. Simmons
  6125. 2.7
  6126. •   Problems with *UP − If you are having problems (as expressed in the
  6127. Help Section last month) with *UP or the use of ^ in a pathname, it is
  6128. probably because of a bug in the ADFS. The problem occurs when a
  6129. directory is renamed. The ADFS does not seem to keep track of it
  6130. properly. The solution, apparently, is to do a *COMPACT on the disc.
  6131. 2.7
  6132. •   Repton 3 again (Philip Armstrong) − I’ve got a few more comments on
  6133. Repton 3. Firstly I hope that no one saved the new characters and maps
  6134. onto the original disc. I have found that occasionally, the maps have
  6135. been corrupted and thus rendered impossible. If you find a screen that
  6136. you can’t do then check it with the original version. For those people
  6137. that can’t get to grips with the array of different characters, create a
  6138. second disc with all the files using a standard set of characters. This
  6139. makes the screens easier to complete. I have included on the monthly
  6140. program disc, the new characters that I use. They are not brilliant, but
  6141. a distinct improvement on the original set. Superior Software only state
  6142. that characters and maps cannot be used for commercial exploitation, so
  6143. it is OK for us to distribute in this way. There is also a simple
  6144. program to merge maps and my characters. Also, if you cannot stand the
  6145. tune that accompanies the loading program of Repton, then change *tune1
  6146. to *tune0 in the “config” file.
  6147. 2.7
  6148. Here is a list of Passwords for Repton 3. Sorry it’s not complete, but I
  6149. do have other things to do. If anyone can do screen E of WORK
  6150. (p=scratch), I’d be pleased to hear from them because it looks imposs
  6151. ible and I have checked it against the original. I suspect a transporter
  6152. has been defined wrongly.
  6153. 2.7
  6154. A   Prelude   B   Rescind   C   Periwig   D   Mortify      E   Forsake  
  6155. F   Gratify   G   Thistle   H   Spangle
  6156. 2.7
  6157. A   Toccata   B   Nocturn   C   Liberal   D   Inspect      E   Delight  
  6158. F   Botanic   G   Vitriol   H   Sacking
  6159. 2.7
  6160. A   Finale   B   Yardarm   C   Zealous   D   Without      E   Aviator  
  6161. F   Elderly   G   Juniper   H   Crimson
  6162. 2.7
  6163. A   America   B   Herbage   C   Kitchen   D   Outcast      E   Quarter  
  6164. F   Untwine   G   Tremble   H   Strange
  6165. 2.7
  6166. A   Arctic   B   Kinetic   C   Gondola   D   Lozenge      E   Rotunda  
  6167. F   Frontal   G   Younger    H
  6168. 2.7
  6169. A   Orient   B   Organic   C   Armhole   D   Visible   E   Neglect   F  
  6170. Biplane   G   H
  6171. 2.7
  6172. A   Oceans   B   Distain   C   Mundane   D   Eclipse   E   Warning   F  
  6173. G   H
  6174. 2.7
  6175. A   Africa   B   Quickly   C   Zigzags   D   Closely   E   Panoply   F  
  6176. Bonfire   G   H
  6177. 2.7
  6178. A   Baby   B   Startle   C   Measles   D   Granite   E   WhimperF  
  6179. Cushion   G   Alimony   H   Utensil
  6180. 2.7
  6181. A   School   B   Qualify   C   Knicker   D   Dynamic   E   Tendril   F  
  6182. Lanyard   G   Vinegar   H   Yaskmak
  6183. 2.7
  6184. A   Teenage   B   Eternal   C   Whisper   D   Feather   E   Rhubarb   F  
  6185. Jasmine   G   H  
  6186. 2.7
  6187. A   Work   B   Inverse   C   Parapet   D   Elegant   E   Scratch   F   G 
  6188.  H  
  6189. 2.7
  6190. A   Oap   B   Jackdaw   C   Rupture   D   Archery   E   Figment   F  
  6191. Natural   G   Tonight   H   Brigade
  6192. 2.7
  6193. A   Prehist   B   Dormant   C   Mineral   D   Varnish   E   Dashpot   F  
  6194. Lobelia   G   Upright   H  
  6195. 2.7
  6196. A   Egypt   B   Lobster   C   Tabloid   D   Achieve   E   Gristle   F  
  6197. Deceive   G   Scalpel   H  
  6198. 2.7
  6199. A   Victori   B   Earnest   C   Pervade   D   Violent   E   Bashful   F  
  6200. Magnify   G   Wrought   H   Horizon
  6201. 2.7
  6202. A   Now   B   Charity   C   Funeral   D   Justify   E   Naughty   F  
  6203. Isolate   G   Radical   H  
  6204. 2.7
  6205. A   Future   B   Primate   C   Mustang   D   Iterate   E   F   G   H  
  6206. 2.7
  6207. •   Shared C Library − Users of release 2 of ANSI C might like to know
  6208. how to use the Shared C Library which is included on the disc but which
  6209. does not seem to be documented in the User Guide. Normally, the AOF
  6210. file, generated by compiling the C source, is linked with the C ANSI
  6211. library file, $.ARM.CLib.O.AnsiLib. This produces an image file which
  6212. can be executed directly by *RUNning it. This image file tends to be
  6213. quite long as large port-ions of the C ANSI library are incorporated in
  6214. it.
  6215. 2.7
  6216. On the C disc, is a file called $.Library.CLib which contains the C ANSI
  6217. library in the form of a relocatable module. The interface between the
  6218. user program and this Shared C Library module is a small file called
  6219. $.ARM.CLib.O.Stubs which simply defines each ANSI library function as a
  6220. SWI which is then recognised by the library module.
  6221. 2.7
  6222. As an example of the use, try the following. Mount your working copy of
  6223. the C disc and enter directory $.ARM.CBench. Now compile the source file
  6224. C.HelloW using the -c option so as not to invoke the linker:
  6225. 2.7
  6226. *CC HelloW -c
  6227. 2.7
  6228. Now link the resulting AOF file with the Stubs library:
  6229. 2.7
  6230. *Link -o HelloW O.HelloW $.ARM.CLib.O.Stubs
  6231. 2.7
  6232. Next load the Shared C Library module:
  6233. 2.7
  6234. *RMLoad $.Library.CLib
  6235. 2.7
  6236. And finally run the program:
  6237. 2.7
  6238. *Run HelloW
  6239. 2.7
  6240. Note that an image file generated in this way is not truly stand-alone
  6241. as it needs the Shared C Library module to be loaded in order for it to
  6242. run (but then again many programs need the Floating Point Emulator to be
  6243. loaded in order to run). A big advantage is that the image file is very
  6244. much smaller than it would be if it had been linked with the ANSI
  6245. library in the normal way. One can envisage several C programs multi
  6246. tasking under RISC-OS, sharing the resources of the Shared C Library.
  6247. 2.7
  6248. It should be noted that the Arthur-specific functions declared in the
  6249. ArthurLib header file are not incorporated in the Shared C Library. If
  6250. your program uses these functions you must include
  6251. $.ARM.CLib.O.ArthurLib at the linking stage. So try the following:
  6252. 2.7
  6253. *CC Balls64 -c
  6254. 2.7
  6255. *Link -o Balls64 O.Balls64 $.ARM.CLib.O.Stubs $.ARM.CLib.O.ArthurLib
  6256. 2.7
  6257. *Run Balls64
  6258. 2.7
  6259. Provided the Shared C Library module is loaded, the program should run
  6260. normally. John Morley
  6261. 2.7
  6262. •   Sprite Animation − There have been many articles relating to the use
  6263. of Sprites on the Archimedes. These have covered the use of PLOT &ED,X,Y
  6264. to display a Sprite in its defined colours at point (X,Y) and the use of
  6265. a Mask to allow a background to appear through the ‘unused’ parts of a
  6266. sprite. They have also shown the use of Exclusive OR plotting using GCOL
  6267. 11,0 to allow the sprite to be moved over any coloured background.
  6268. 2.7
  6269. The EOR solution to this last problem, of moving a multi-coloured sprite
  6270. over a multi-coloured background, does work, but unless a great deal of
  6271. thought is given to palette selection, the sprite does not retain its
  6272. defined colour during movement.
  6273. 2.7
  6274. Many games will require the facility to define a sprite in specified
  6275. colours, with a mask and to move it still retaining those colours rather
  6276. than those produced by EOR.
  6277. 2.7
  6278. A solution is to use the standard Move/Display/Erase in a loop but not
  6279. to use EOR. The following algorithm does this :
  6280. 2.7
  6281. 1   Define the sprite ‘MySprite’ with a mask (using SEDIT on the Welcome
  6282. Disk).
  6283. 2.7
  6284. 2   Determine the size of ‘MySprite’. This may be known but a SYS call
  6285. does it for you.
  6286. 2.7
  6287. LOOP
  6288. 2.7
  6289. 3   Determine the position where ‘MySprite’ is to be plotted.
  6290. 2.7
  6291. 4   Grab a sprite ‘Temp’ from the screen at this position the same size
  6292. as ‘MySprite’.
  6293. 2.7
  6294. 5   Plot ‘MySprite’ with the mask.
  6295. 2.7
  6296. 6   Plot the grabbed sprite ‘Temp’ to ERASE ‘Mysprite’.
  6297. 2.7
  6298. ENDLOOP
  6299. 2.7
  6300. The following program demonstrates this :
  6301. 2.7
  6302.  10 REM > SpritePlot
  6303. 2.7
  6304.  20 REM Copyright Ian Smith
  6305. 2.7
  6306.  30 REM March 1989
  6307. 2.7
  6308.  40
  6309. 2.7
  6310.  50 REM An example program to show
  6311. 2.7
  6312.  the use of sprites moving
  6313. 2.7
  6314.  60 REM across a multi coloured
  6315. 2.7
  6316.  background by grabbing an area
  6317. 2.7
  6318.  70 REM of screen as a sprite and
  6319. 2.7
  6320.  then using it to overwrite the
  6321. 2.7
  6322.  80 REM moving sprite.
  6323. 2.7
  6324.  90
  6325. 2.7
  6326. 100 MODE 15  :REM Works in other
  6327. 2.7
  6328.  modes
  6329. 2.7
  6330. 110 T$=“Temp”  : REM Will be the
  6331. 2.7
  6332.  sprite grabbed from screen
  6333. 2.7
  6334. 120 M$=“MySprite”  : REM A masked
  6335. 2.7
  6336.  sprite created with SEDIT
  6337. 2.7
  6338. 130 *SLOAD !Sprites
  6339. 2.7
  6340. 140
  6341. 2.7
  6342. 150 SYS &2E,40,,T$ TO ,,,W,H :REM
  6343. 2.7
  6344.  Find size of sprite to grab
  6345. 2.7
  6346. 160       : REM W)idth and H)eight
  6347. 2.7
  6348. 170 PROCDrawBackground  : REM Draw
  6349. 2.7
  6350.  a Multicoloured background
  6351. 2.7
  6352. 180 PROCTitle:REM and put titles on
  6353. 2.7
  6354. 190
  6355. 2.7
  6356. 200 REPEAT
  6357. 2.7
  6358. 210  REM ****** MOVE ******
  6359. 2.7
  6360. 220  MOUSE X,Y,B
  6361. 2.7
  6362. 230  SYS &2E,16,,T$,1,X,Y,X+W*2,
  6363. 2.7
  6364. Y+H*4  : REM Grab sprite
  6365. 2.7
  6366.  from screen
  6367. 2.7
  6368. 240
  6369. 2.7
  6370. 250  OSCLI(“SCHOOSE ” + M$ ) :REM
  6371. 2.7
  6372.  Select original sprite
  6373. 2.7
  6374. 260
  6375. 2.7
  6376. 270  REM ****** DISPLAY ******
  6377. 2.7
  6378. 280  GCOL 8,0 :REM Now plot it with
  6379. 2.7
  6380.  its mask
  6381. 2.7
  6382. 290  PLOT &ED, X,Y   :REM at the
  6383. 2.7
  6384.  mouse position
  6385. 2.7
  6386. 300  PLOT &ED,900,800  : REM and
  6387. 2.7
  6388.  display it in rectangle
  6389. 2.7
  6390. 310
  6391. 2.7
  6392. 320  WAIT:WAIT  : REM Synchronise
  6393. 2.7
  6394.  output
  6395. 2.7
  6396. 330
  6397. 2.7
  6398. 340  OSCLI(“SCHOOSE ” + T$) :REM
  6399. 2.7
  6400.  Now plot the grabbed sprite
  6401. 2.7
  6402. 350
  6403. 2.7
  6404. 360  REM ****** ERASE ******
  6405. 2.7
  6406. 370  GCOL 0,0
  6407. 2.7
  6408. 380  PLOT &ED,X,Y : REM at the same
  6409. 2.7
  6410.  place
  6411. 2.7
  6412. 390  PLOT &ED,1000,800  :REM and in
  6413. 2.7
  6414.  its rectangle
  6415. 2.7
  6416. 400 UNTIL B=7      : REM 3 buttons
  6417. 2.7
  6418.  terminates
  6419. 2.7
  6420. 410 END
  6421. 2.7
  6422. 420
  6423. 2.7
  6424. 430 DEF PROCDrawBackground
  6425. 2.7
  6426. 440 GCOL 3 : RECTANGLE FILL 0,0,
  6427. 2.7
  6428. 300,300 : REM Just a
  6429. 2.7
  6430.  couple of
  6431. 2.7
  6432. 450 GCOL 4 : RECTANGLE FILL 50,50,
  6433. 2.7
  6434. 50,50 : REM rectangles and
  6435. 2.7
  6436. 460 GCOL 12:CIRCLE FILL 800,400,200
  6437. 2.7
  6438. : REM circles
  6439. 2.7
  6440. 470 GCOL 5 :CIRCLE FILL 600,300,100
  6441. 2.7
  6442. 480 OSCLI(“SCHOOSE ” + M$)
  6443. 2.7
  6444. 490 PLOT &ED,75,90 : REM and the
  6445. 2.7
  6446.  sprite
  6447. 2.7
  6448. 500 ENDPROC
  6449. 2.7
  6450. 510
  6451. 2.7
  6452. 520 DEF PROCTitle
  6453. 2.7
  6454. 530 GCOL 1
  6455. 2.7
  6456. 540 RECTANGLE 900-2,800-4,W*2+4,
  6457. 2.7
  6458. H*4+8 :REM Draw rectangles
  6459. 2.7
  6460. 550 RECTANGLE 1000-2,800-4,W*2+4,
  6461. 2.7
  6462. H*4+8 : REM in which sprites
  6463. 2.7
  6464. 560 PRINT TAB(53,2);“S P R I T E S”
  6465. 2.7
  6466.   : REM are displayed
  6467. 2.7
  6468. 570 PRINT TAB(52,3);“original
  6469. 2.7
  6470.  grabbed“
  6471. 2.7
  6472. 580 PRINT TAB(0,1);“SPRITE
  6473. 2.7
  6474. DEMONSTRATION : use mouse
  6475. 2.7
  6476.  to move sprite“
  6477. 2.7
  6478. 590 ENDPROC
  6479. 2.7
  6480. Comments on the program
  6481. 2.7
  6482. PROCDrawBackgound sets up a background to move over.
  6483. 2.7
  6484. PROCTitle puts text and a couple of rectangles on the screen
  6485. 2.7
  6486. 150   uses a SYS call to find the Width and Height of ‘MySprite’. This
  6487. is needed so that the right size ‘Temp’ can be grabbed. (See PRM pp
  6488. 429,433.)
  6489. 2.7
  6490. 230   grabs the sprite from the screen using a SYS call. Note the *2 and
  6491. *4 to compensate for screen MODE 15. You’ll need to change this for
  6492. other resolution modes.
  6493. 2.7
  6494. 250   selects ‘MySprite’
  6495. 2.7
  6496. 280   selects the Mask Plot option GCOL 8.
  6497. 2.7
  6498. 290   plots the sprite at the Mouse selected point
  6499. 2.7
  6500. 300   plots the sprite in a rectangle to show its original colours.
  6501. 2.7
  6502. 340   selects ‘Temp’
  6503. 2.7
  6504. 380   plots ‘Temp’ effectively erasing ‘MySprite’
  6505. 2.7
  6506. 390   plots ‘Temp’ in its rectangle. The effect of 390 has an interest
  6507. ing side-effect. When you run the program move the sprite over the
  6508. rectangle! See what happens!
  6509. 2.7
  6510. The program ‘SpritePlot’ and the sprite file ‘!Sprites’ are on this
  6511. month’s disk but you can use the program by keying it in and also
  6512. creating a masked sprite in mode 15 using SEDIT and saved as !SPRITES.
  6513. 2.7
  6514. The program can obviously be modified to run in other modes. The flicker
  6515. on the sprite could be removed by modifying the program to plot only if
  6516. the mouse has been moved. Ian Smith
  6517. 2.7
  6518. •   Star-Trader Cheats − Here are some ideas and cheats for
  6519. ‘StarTrader’. It is an excellent game, all the more impressive when you
  6520. consider it is written in BASIC!
  6521. 2.7
  6522. Load the main game and enter the EDIT editor. (The main game file is
  6523. ‘$.Resouces.StarTrader. StarTrader’.) You can alter as many as the
  6524. following as you like to make the game a bit easier to get into;
  6525. 2.7
  6526. Line 290 change to: SUN=1 for a SunBurst
  6527. 2.7
  6528.    DEATH=1 for a DeathBlossom
  6529. 2.7
  6530.    CELL=1 for a super energy cell
  6531. 2.7
  6532.    ENG=3 for the most powerful engines (Note ENG=2 & ENG=1 are available
  6533. as well)
  6534. 2.7
  6535.    NUMPT=10 for the number of photon torpedoes. Having 10 doesn’t spoil
  6536. the display!
  6537. 2.7
  6538. Line 390 change CRD to the number of credits you want (STDA is the
  6539. stardate)
  6540. 2.7
  6541. Line 420 change MAXHOL to the size of the hold you want fitted.
  6542. 2.7
  6543. Note: DAMCAP is used in Line 13570 to calculate the remaining hold
  6544. capacity.
  6545. 2.7
  6546. PRC() holds the value of each of the tradegoods you are carrying CTOTAL
  6547. is the total weight of cargo you are carrying at the moment (also used
  6548. in 13570)
  6549. 2.7
  6550. The messages you occassionally get when transporting down to a planet
  6551. are held in code. If you want to see them, then type the following
  6552. changes in immediate mode.
  6553. 2.7
  6554. LOAD “StarTrader”
  6555. 2.7
  6556. DELETE 0,39349
  6557. 2.7
  6558. DELETE 39560,39580
  6559. 2.7
  6560. DELETE 39640
  6561. 2.7
  6562. DELETE 39650,39690
  6563. 2.7
  6564. 39351 DIM CMG$(20)
  6565. 2.7
  6566. 39554 FOR T=0 TO  20
  6567. 2.7
  6568. 39651 NEXT
  6569. 2.7
  6570. PROCCLUE (If <ctrl-B> is used first, the messages can be sent to a
  6571. printer.)
  6572. 2.7
  6573. There is a 50:50 chance of getting a clue on any planet landing. 16
  6574. messages have a 95% chance of being called, the other 4 messages only
  6575. 5%. The rumour sends you to a randomly chosen planet! Some messages are
  6576. tradehints, some are adverts for other games(!) and a couple are very
  6577. useful clues to the solution of the puzzle.
  6578. 2.7
  6579. The planets on which the segments are found and the code are chosen at
  6580. the creation of the universe stage. RUN the game, then immediately save
  6581. it. TYPE in CHEAT4 to get a list of planet numbers where the segments
  6582. are. CHEAT4 also prints out the code letters. These are held in the
  6583. array ZTX()
  6584. 2.7
  6585.  10 REM >CHEAT4
  6586. 2.7
  6587.  20 DIM PKLR(800),GR(800),ANAME$
  6588. 2.7
  6589. (800),TYP(800),SS(800),PO(800)
  6590. 2.7
  6591. ,STARSS(120),PX(120),PZ(120), PC(9),SP(9),PRC(13), UNI(120,12),ZTX(8)
  6592. 2.7
  6593.  30 BB=OPENIN(“:1.xxxxx”):REM
  6594. 2.7
  6595.  change xxxxx to name of
  6596. 2.7
  6597.  SaveGame file
  6598. 2.7
  6599.  40 INPUT# BB,SUN,DEATH,CELL,ENG,
  6600. 2.7
  6601.  FS, PS,SS,AS,PTD,PSD,DAMCAP,HD, TE,NUMPT,PE,EPS,STDA,CRD,PN,SY
  6602. 2.7
  6603.  50 FORT=1TO800:INPUT# BB,PKLR(T),
  6604. 2.7
  6605.  GR(T),ANAME$(T),TYP(T), SS(T),PO(T):NEXTT
  6606. 2.7
  6607.  60 FORT=1TO120:INPUT# BB,SARSS(T)
  6608. 2.7
  6609.  ,PX(T),PZ(T):NEXTT
  6610. 2.7
  6611.  70 FORT=1TO9:INPUT# BB,PC(T),SP(T)
  6612. 2.7
  6613. :NEXTT
  6614. 2.7
  6615.  80 FORT=1TO13:INPUT# BB,PRC(T)
  6616. 2.7
  6617. :NEXTT
  6618. 2.7
  6619.  90 FORZ=1TO119
  6620. 2.7
  6621. 100 FORT=1TO12:INPUT# BB,UNI(Z,T)
  6622. 2.7
  6623. :NEXTT
  6624. 2.7
  6625. 110 NEXTZ
  6626. 2.7
  6627. 120 FORT=1TO8:INPUT# BB,ZTX(T)
  6628. 2.7
  6629. :NEXTT
  6630. 2.7
  6631. 130 CLOSE# BB
  6632. 2.7
  6633. 140 FOR LOOP=1 TO 9:PRINT PC(LOP),
  6634. 2.7
  6635. SP(LOOP)’:NEXT:REM planets
  6636. 2.7
  6637. 150 FOR LOOP=1 TO 8:PRINTCHR$(64+
  6638. 2.7
  6639. ZTX(LOOP)):NEXT:REM code
  6640. 2.7
  6641. You get a nice fanfare when you collect a segment. The percentage
  6642. chances reported during a scan can be as low as 45% or as high as 90% on
  6643. a planet which actually has a segment.
  6644. 2.7
  6645. If you have two drives, it is quite easy to use drive 1 as the GameSave
  6646. drive (as in the program above). Just change (input$) in Lines 3770,
  6647. 4020 and 4050 to (“:1.”+input$). Dave Kent
  6648. 2.7
  6649. •   TV output from Archimedes? − It is possible to connect a TV to an
  6650. Archimedes, though only in monochrome and via a video.  Connect a wire
  6651. (co-ax) from a phono plug plugged into the Archimedes mono video socket
  6652. to pin 20 (centre core of Co-ax) and any one of the many 0V lines (i.e.
  6653. connect the braid screen to 0V) on a SCART plug. This means that it only
  6654. works on video machines with a SCART socket on them (if no SCART socket,
  6655. then connect to VIDEO IN via a phono or BNC plug). This also means that
  6656. you can make demo videos and stuff by taping the pictures. Sound can be
  6657. connected to pins 2 and 6, I think, never tried it! (See Archive 2.2 p
  6658. 6)  Does anyone now how to convert the Archie mono out to colour?
  6659. Plugging the Archie SCART cable to the video doesn’t work! Oliver
  6660. Cornes.
  6661. 2.7
  6662. •   Using First Mail − At first, I regarded First Word Plus as a very
  6663. ordinary word processor. The need to keep reformatting with <f12> seemed
  6664. to be a step backward. However First Mail changes the picture for me.
  6665. Here are one or two ideas on how to use First Mail for handling ordinary
  6666. day-to-day cor-respondence.
  6667. 2.7
  6668. I “merge from” a file carrying my letterhead. In fact I have a few
  6669. different letterheads for different purposes. In addition to the
  6670. letterhead my “from” file has the following First Mail commands:
  6671. 2.7
  6672. longdate
  6673. 2.7
  6674. input “address file?”, address
  6675. 2.7
  6676. input “text file?”, text
  6677. 2.7
  6678. includefile dat.address
  6679. 2.7
  6680. Dear
  6681. 2.7
  6682. includefile doc.text
  6683. 2.7
  6684. includefile dat.address
  6685. 2.7
  6686. (The bits in italic that should be in light type. It is not obvious
  6687. which the light bits should be; but see the note on p. 206 of the First
  6688. Word Plus manual.)
  6689. 2.7
  6690. The system asks me for an address file and then a file containing the
  6691. text of the letter, both of which it merges with the letterhead. The
  6692. second printing of the address comes after a hard page break. Since I
  6693. specify pauses on page breaks, this allows me to remove the letter from
  6694. the printer and replace it with the envelope (or sticker) for the second
  6695. address to be printed on that. I can cancel this when I do the draft
  6696. copy, which I keep for my own files. I save my letter texts in the doc
  6697. directory and addresses in the dat directory. This allows me to use the
  6698. same name for both if that is more convenient.
  6699. 2.7
  6700. Incidentally I use a brother daisywheel for most of my letter quality
  6701. printing; and I have configured the driver to print my letterhead in
  6702. bold red. A nice feature of First Word Plus is that you can have several
  6703. drivers for the same printer if you give them different names. Not only
  6704. that, but with a daisy-wheel you can have two configurations on the same
  6705. driver by making the NLQ configuration different from the draft
  6706. configuration, though of course, the terms draft and NLQ will have no
  6707. real meaning for a daisywheel.
  6708. 2.7
  6709. There are some errors in the Brother driver supplied, by the way; so
  6710. check with the manual, especially if you are Danish or are in the habit
  6711. of using some of the more obscure symbols. The First Word Plus manual is
  6712. a bit vague about full pathnames, too. For instance, to install a
  6713. different default printer you have to type, say,
  6714. 2.7
  6715. *copy 1wp.cfg.epson_fx resources.
  6716. 2.7
  6717. 1wp.1wp_print
  6718. 2.7
  6719. I find the First Word Plus file window most useful for exploring discs.
  6720. If you click on the window exit symbol you get the parent directory.
  6721. Clicking on a directory name in the window lists that directory in the
  6722. window as well as selecting it in the directory slot. Glyn Emery.
  6723. 2.7
  6724.  
  6725. 2.7
  6726. We begin a new section this month to help you get to grips with RISC-OS.
  6727. When you buy RISC-OS, you get a disc full of information from software
  6728. houses (see list below) about how to get their software running under
  6729. RISC-OS, but I suspect that because RISC-OS is so new, there will be
  6730. lots for us all to learn − hence this column.We really need a volunteer
  6731. to be the editor of this corner − someone to whom I can send all the
  6732. info and who will then collate it, check it and regurgitate it to me
  6733. (preferably via Eureka II for speed). Anyway, Mike Harrison, Matthew
  6734. Treagus, Keith Milner and Ting Kuei start us off.
  6735. 2.7
  6736. •   Flashing screens − I’ve just got hold of the release RISC-OS User
  6737. Guide and noticed that it does not seem to mention the fact that in
  6738. modes 21, 24 and 28, the screen blanks when accessing floppies, due to
  6739. the high DMA rate. I’m sure many dealers will get calls from worried
  6740. users who think that fitting RISC-OS has damaged their machine because
  6741. of the screen flashing on and off!
  6742. 2.7
  6743. •   Logistix − Logistix users must replace the Floating Point Emulator
  6744. in the Library of the Log-istix Disc (version 2.50) with the later one
  6745. which is supplied with RISC-OS, i.e. FPE version 2.60. It can also be
  6746. found on the ABC Compiler Disc. If this is not done Logistix, will not
  6747. run correctly.
  6748. 2.7
  6749. •   TWIN − If, like me, you are annoyed at the delay in loading TWIN
  6750. when editing programs, especially with BASIC using TWINO8, make an Obey
  6751. file that does the following :
  6752. 2.7
  6753. Set Run$Path Ram:,<Run$Path>
  6754. 2.7
  6755. Copy Twin Ram:Twin f~c
  6756. 2.7
  6757. (Ensure that your configured RamFS size is big enough first!). After
  6758. running this, Twin will be instantly loaded from Ram Disk. You can of
  6759. course also include in the file a *Key command to define your favourite
  6760. function key to call Twin, e.g.
  6761. 2.7
  6762.  Key 1 |UTWINO8|M
  6763. 2.7
  6764. For BASIC. The |U deletes any crud which may have been on the command
  6765. line before you hit <f1>.
  6766. 2.7
  6767. •   Virsuses on RISC-OS!!! − I wonder how many people will look at this
  6768. in panic. Don’t worry. There is a virus on RISC-OS, even before it is
  6769. released, but it is totally harmless. In fact it is quite fun. First, a
  6770. brief description of how most viruses work:
  6771. 2.7
  6772. Most business machines load their operating system from disk. So, in
  6773. order to ‘virus’ one of these machines, the offending program just
  6774. becomes part of the operating system in some way. It copies itself onto
  6775. other discs with operating systems on and soon every copy of the OS you
  6776. have is “infected”.
  6777. 2.7
  6778. On a sensible computer, such as the Archimedes(!) the operating system
  6779. is on ROM, and cannot be altered! Thus if someone decides to write a
  6780. virus program, once it is detected, turning the machine off will remove
  6781. it. It is, however, possible to install a virus on other files on disc.
  6782. This is much more difficult to do, is easier to detect and easier to
  6783. remedy. For instance, the !BOOT file is a common file to be found on a
  6784. disc, and a virus could conceivably attach onto this, although it would
  6785. be very difficult since every !BOOT file is different.
  6786. 2.7
  6787. I will not disclose how the RISC-OS virus installs itself as it will
  6788. only encourage people to write viruses. I will say, however, that once
  6789. detected, it is ((very simple)) to remove it with no after effects. If
  6790. the virus (which actually originates from Acorn!) appears on your disc,
  6791. not much actually happensÉ or at least it appears that way. You are
  6792. using the desktop as normal and suddenly, a small fish appears on the
  6793. screen and swims across, behind all the windows, leaving a trail of
  6794. bubbles which rise to the top of the screen and disappear. Several more
  6795. fish swim backwards and forwards on the desktop until the machine is
  6796. reset. This virus is totally harmless, the only ill effect is to use up
  6797. a bit of processor time! In fact, I have installed it deliberately as it
  6798. is quite relaxing!
  6799. 2.7
  6800. Another virus we have heard of is the FF8 virus which adds itself to
  6801. filetype FF8 files. It displays a message and prevents the affected file
  6802. from running on the 13th of the month.This it is a real pain if you are
  6803. not careful, i.e. if you forget to turn the computer off before running
  6804. a new program!  There is a detector program available (downloadable from
  6805. area 2 on Eureka II) but it will only check for the existence of the
  6806. virus and will not destroy it.
  6807. 2.7
  6808. •   Manuals − Q: When RISC-OS is available, does it mean that the
  6809. manuals I purchased are outdated or will Acorn publish a cheap edition
  6810. to add to it?
  6811. 2.7
  6812. A: The bulk of the PRM remains correct, however there is a wealth of
  6813. brand new information and a new PRM will be out in due course, probably
  6814. in three volumes!
  6815. 2.7
  6816. The following firms have provided help on RISC-OS compatibility. The
  6817. information is on the Support Disc that comes with RISC-OS.
  6818. 2.7
  6819. Abacus Training Ltd
  6820. 2.7
  6821. Ace Computing
  6822. 2.7
  6823. Acorn Computers Ltd
  6824. 2.7
  6825. AVP Computing
  6826. 2.7
  6827. Cambridge Micro Systems Ltd
  6828. 2.7
  6829. Clares Micro Supplies Ltd
  6830. 2.7
  6831. Colton Software
  6832. 2.7
  6833. Dabs Press
  6834. 2.7
  6835. Dixon and Dixon
  6836. 2.7
  6837. Emmerich (Berlon) Ltd
  6838. 2.7
  6839. GEM Electronics
  6840. 2.7
  6841. Intelligent Interfaces Ltd
  6842. 2.7
  6843. Institute of Ophthalmologists
  6844. 2.7
  6845. Lendac Data Systems Ltd
  6846. 2.7
  6847. Lingenuity (Lindis International Ltd)
  6848. 2.7
  6849. Magenta Research Ltd
  6850. 2.7
  6851. Maze Technology
  6852. 2.7
  6853. Meadow Computers
  6854. 2.7
  6855. Minerva Systems Ltd
  6856. 2.7
  6857. Mitre Software Ltd
  6858. 2.7
  6859. Oak Professional Software Ltd
  6860. 2.7
  6861. Silicon Vision Ltd
  6862. 2.7
  6863. Watford Electronics Ltd
  6864.  
  6865.  
  6866. •   Floppy programs on hard discs − Here’s the best method I’ve come
  6867. across of getting floppy programs to run on a HD machine. You need two
  6868. FFF type files (or Obey if you want) One called ‘Floppy’ should contain:
  6869. 2.8
  6870. *CON. Drive 0
  6871. 2.8
  6872. *CON. NoBoot
  6873. 2.8
  6874. The other called Hard should be:
  6875. 2.8
  6876. *CON. Drive 4
  6877. 2.8
  6878. *CON. Boot
  6879. 2.8
  6880. If you put these in the library you can then
  6881. 2.8
  6882. *Floppy
  6883. 2.8
  6884. <ctrl-break>
  6885. 2.8
  6886. <shift-break>
  6887. 2.8
  6888. do whatever else
  6889. 2.8
  6890. <ctrl-break>
  6891. 2.8
  6892. *DIR :4
  6893. 2.8
  6894. *hard
  6895. 2.8
  6896. <ctrl-break>
  6897. 2.8
  6898. (This assumes you have a !Boot on your hard disc.) Martyn Lovell
  6899. 2.8
  6900. •   Head alignment problems? − If you are getting disc errors and
  6901. suspect that the problem might be head alignment, one way of confirming
  6902. this is to use the disc copier program that you will find on Share-ware
  6903. N¼2. The program does a check of the whole disc to find bad sectors. If
  6904. one of the heads is misal-igned, you will probably find that all the bad
  6905. sectors reported are on one or other of the heads. Then it’s time to
  6906. take it off to your local dealer for repair.
  6907. 2.8
  6908. •   Hearsay − If you need to change modem baud rates with ATB3 or ATB0
  6909. after calling one remote system and before calling another, you can do
  6910. so by using a dial prefix in the modem driver edit screen by putting
  6911. “ATB3D” or “ATB0D” as appropriate.
  6912. 2.8
  6913. •   Matrix Procedures and Functions − This was prompted by Steve Drain’s
  6914. article in Archive 2.1 p.17 where he stated that a numerical method for
  6915. the inverse of a square matrix needs a good guess of the inverse and
  6916. uses the transposed matrix as a starting point. His excellent program
  6917. has been timed to invert a 20 x 20 matrix to 1 part in 10^9 in approx-
  6918. imately 10 seconds.
  6919. 2.8
  6920. A good guess or even a desirable result can be ob-tained by a procedure
  6921. described below. It calculates an inverse of 20x20 matrix in about 280
  6922. centisec-onds giving an error in the non-diagonal elements of the
  6923. identity matrix of less than 1 part in 10^6.
  6924. 2.8
  6925. The method used is based on the following. The matrix M to be inverted
  6926. is premultiplied by its transposed M‘, giving M’M. The result is
  6927. decomposed in a lower triangular matrix L satisfying the identity
  6928. LL’=M’M. Then I, which is the inverse of L, can be determined in a
  6929. straight forward way. Matrix I’I thus equals the inverse of M’M, and
  6930. finally I’IM‘ gives the result wanted. This is correct as can be seen
  6931. when premultiplying a vector x by M giving a vector v, and solving for
  6932. x.
  6933. 2.8
  6934. Mx=v ==> M’Mx=M’v==> LL’x=M’v ==> I’ILL’x=I’IM’v ==> x=I’IM’v
  6935. 2.8
  6936. In fact, this is the least square solution for vector x, i.e. r
  6937. equations with c unknown variables ( r>=c ) are solved using the
  6938. criterium that the sum of the squares of the deviations to a solution of
  6939. vector x obtains a minimal value.
  6940. 2.8
  6941. The program presented below uses PROC lst_sq_inv to determine the
  6942. ‘inverse’ Mi of any matrix M. If M is a square matrix then MiM = E and
  6943. also MMi = E, E being the identity matrix. As an ‘extra’, the determi
  6944. nant of the square matrix M can easily be calculated. To my knowledge
  6945. the method is numerically very stable.
  6946. 2.8
  6947.  10 REM >Matrix_Inv
  6948. 2.8
  6949.  20 :
  6950. 2.8
  6951.  30 *********************************
  6952. 2.8
  6953.  40 REM Inverting an arbitrary matrix
  6954. 2.8
  6955.  50 REM E.D. Engelhardt, March 1989 
  6956. 2.8
  6957.  60 *********************************
  6958. 2.8
  6959.  70 :
  6960. 2.8
  6961.  80 REM *** Generate random matrix M,
  6962. 2.8
  6963.  col% columns and row% rows
  6964. 2.8
  6965.  90 CLS
  6966. 2.8
  6967. 100 PRINT‘“ Inverting an arbitrary
  6968. 2.8
  6969.  matrix“‘
  6970. 2.8
  6971. 110 REPEAT:INPUT“ Rows            :
  6972. 2.8
  6973.  “row%:UNTIL row%>0
  6974. 2.8
  6975. 120 REPEAT:INPUT“ Columns <= rows :
  6976. 2.8
  6977.  “col%:UNTIL col%<=row% AND col%>0
  6978. 2.8
  6979. 130 CLS:PRINT‘“ Rows    : ”STR$row%
  6980. 2.8
  6981. ‘“ Columns : ”STR$col%
  6982. 2.8
  6983. 140 row%-=1:col%-=1
  6984. 2.8
  6985. 150 DIM M(row%,col%)
  6986. 2.8
  6987. 160 FOR r%=0TOrow%:FOR c%=0TOcol%:
  6988. 2.8
  6989. M(r%,c%)=RND(1)*SGN(0.5-RND(1)) :NEXT:NEXT
  6990. 2.8
  6991. 170 :
  6992. 2.8
  6993. 180 start%=TIME
  6994. 2.8
  6995. 190 :
  6996. 2.8
  6997. 200 REM Determine the ‘least square’
  6998. 2.8
  6999.  inverse Mi of M. Result : Mi.M is equal to the identity matrix E.
  7000. 2.8
  7001.  If rows = cols also M.Mi = E.
  7002. 2.8
  7003. 210 :
  7004. 2.8
  7005. 220 DIM Mi(col%,row%):PROClst_sq_inv
  7006. 2.8
  7007. (M(),Mi())
  7008. 2.8
  7009. 230 end%=TIME
  7010. 2.8
  7011. 240 :
  7012. 2.8
  7013. 250 PRINT‘“ Time(centisecs) : ”;
  7014. 2.8
  7015. STR$(end%-start%)‘’
  7016. 2.8
  7017. 260 :
  7018. 2.8
  7019. 270 PROCprint
  7020. 2.8
  7021. 280 END
  7022. 2.8
  7023. 290 ————————————————-300 DEFPROClst_sq_inv(R(),Ri())
  7024. 2.8
  7025. 310 REM Ri is ‘least square’ inverse
  7026. 2.8
  7027.  of R, i.e. Ri.R = E (identity                matrix). If rows = cols
  7028. also
  7029. 2.8
  7030.  R.Ri = E.
  7031. 2.8
  7032. 320 REM Dimensions R(v%,h%),Ri(h%,v%)
  7033. 2.8
  7034.  ==> v% : rows , h% : columns
  7035. 2.8
  7036. 330 REM E.D. Engelhardt, March 1989
  7037. 2.8
  7038. 340   :
  7039. 2.8
  7040. 350 LOCAL RtR(),L(),I(),v%,h%,c%,r%,t%
  7041. 2.8
  7042. 360 v%=DIM(R(),1):h%=DIM(R(),2)
  7043. 2.8
  7044. 370 DIM RtR(h%,h%),L(h%,h%),I(h%,h%)
  7045. 2.8
  7046. 380 :
  7047. 2.8
  7048. 390 REM Determine transpose of R
  7049. 2.8
  7050. 400 FOR r%=0 TO v%:FOR c%=0 TO h%:
  7051. 2.8
  7052. Ri(c%,r%)=R(r%,c%):NEXT:NEXT
  7053. 2.8
  7054. 410 :
  7055. 2.8
  7056. 420 REM Calculate square matrix to be
  7057. 2.8
  7058.  inverted
  7059. 2.8
  7060. 430 RtR()=Ri().R()
  7061. 2.8
  7062. 440 :
  7063. 2.8
  7064. 450 REM Calc lower triangle L of RtR
  7065. 2.8
  7066. 460 FOR c%=0 TO h%:FOR r%=c% TO h%
  7067. 2.8
  7068. 470   L(r%,c%)=RtR(r%,c%):t%=c%-1
  7069. 2.8
  7070. 480   IF t%>=0 FOR t%=t%TO0STEP-1:
  7071. 2.8
  7072. L(r%,c%)=L(r%,c%)-L(r%,t%)*
  7073. 2.8
  7074. L(c%,t%):NEXT
  7075. 2.8
  7076. 490   IF r%>c% THEN L(r%,c%)=L(r%,c%)
  7077. 2.8
  7078. /L(c%,c%) ELSE L(r%,c%)=SQR L(r%,c%)
  7079. 2.8
  7080. 500 NEXT:NEXT
  7081. 2.8
  7082. 510 :
  7083. 2.8
  7084. 520 REM If R is square (rows = cols)
  7085. 2.8
  7086.  its determinant equals the product of the diagonal elements of L. The
  7087. determinant of RtR equals the
  7088. 2.8
  7089.  square of the determinant of L.
  7090. 2.8
  7091. 530 :
  7092. 2.8
  7093. 540 REM Invert triang matrix L to I
  7094. 2.8
  7095. 550 FOR c%=0 TO h%:FOR r%=c% TO h%
  7096. 2.8
  7097. 560   FOR t%=c% TO r%-1:I(r%,c%)=
  7098. 2.8
  7099. I(r%,c%)-L(r%,t%)*I(t%,c%):NEXT
  7100. 2.8
  7101. 570   IF r%>c% THEN I(r%,c%)=I(r%,c%)
  7102. 2.8
  7103. /L(r%,r%) ELSE I(r%,c%)=1/L(r%,r%)
  7104. 2.8
  7105. 580 NEXT:NEXT
  7106. 2.8
  7107. 590 :
  7108. 2.8
  7109. 600 REM Determine transpose L of
  7110. 2.8
  7111.  inverse triangle I
  7112. 2.8
  7113. 610 FOR r%=0 TO h%:FOR c%=0 TO
  7114. 2.8
  7115.  h%:L(c%,r%)=I(r%,c%):NEXT:NEXT
  7116. 2.8
  7117. 620 :
  7118. 2.8
  7119. 630 REM Inverse matrix of R is Ri
  7120. 2.8
  7121. 640 RtR()=L().I():Ri()=RtR().Ri()
  7122. 2.8
  7123. 650 :
  7124. 2.8
  7125. 660 ENDPROC
  7126. 2.8
  7127. 670 ————————————————-680 DEFPROCprint
  7128. 2.8
  7129. 690 VDU 14
  7130. 2.8
  7131. 700 PRINT“ ******** Elements Matrix”‘
  7132. 2.8
  7133. 710 FOR r%=0 TO row%:FOR c%=0 TO
  7134. 2.8
  7135.  col%:PRINT M(r%,c%):NEXT:PRINT:NEXT
  7136. 2.8
  7137. 720 PRINT“ ******** Elements inverse
  7138. 2.8
  7139.  Matrix“‘
  7140. 2.8
  7141. 730 FOR r%=0 TO col%:FOR c%=0 TO row%
  7142. 2.8
  7143. :PRINT Mi(r%,c%):NEXT:PRINT:NEXT
  7144. 2.8
  7145. 740 DIM E(col%,col%)
  7146. 2.8
  7147. 750 E()=Mi().M()
  7148. 2.8
  7149. 760 PRINT“ ******** Elements of
  7150. 2.8
  7151.  Inverse_Matrix.Matrix“‘
  7152. 2.8
  7153. 770 FOR r%=0 TO col%:FOR c%=0 TO col%
  7154. 2.8
  7155. :PRINT E(r%,c%):NEXT:PRINT :NEXT
  7156. 2.8
  7157. 780 VDU 15
  7158. 2.8
  7159. 790 ENDPROC
  7160. 2.8
  7161. •   Repton 3 − There is a bug in screen E of WORK, so to get past it,
  7162. you will need to know the next password which is COUNTER.
  7163. 2.8
  7164. •   Three floppies under Arthur − Here is a solution to the problem of
  7165. three floppies on the desktop (Archive 2.7.12). Enter the following in a
  7166. file called ‘Desktop’ in the library directory, use *BUILD or a text
  7167. editor such as Twin to enter it.
  7168. 2.8
  7169. *BASIC
  7170. 2.8
  7171. LOAD “DESKFS:DeskTopMgr2”
  7172. 2.8
  7173. 11 OSCLI “DESKFS”
  7174. 2.8
  7175. 12291 IFfloppies%>2 THEN PROCsys_
  7176. 2.8
  7177. addtoiconbar_left(“floppy2”,
  7178. 2.8
  7179. “disc3.5”,&301A,icon_fgcol,
  7180. 2.8
  7181. icon_bgcol, icon_width%)
  7182. 2.8
  7183. 28600 DEFFNselect_floppy2
  7184. 2.8
  7185. 28610 =0
  7186. 2.8
  7187. 28620 DEFFNmenu_floppy2
  7188. 2.8
  7189. 28630 PROCsys_definetextmenu
  7190. 2.8
  7191. (“floppy2”,“floppy :2”,“Format”)
  7192. 2.8
  7193. 28640 =0
  7194. 2.8
  7195. 28650 DEFFNaction_floppy2
  7196. 2.8
  7197. 28660 =FNfilehandler_open_dir
  7198. 2.8
  7199. (“-adfs-:2”,“Floppy :2”,0)
  7200. 2.8
  7201. 28670 DEFFNmenuselect_floppy2
  7202. 2.8
  7203. 28680 CASEitem0% OF
  7204. 2.8
  7205. 28690 WHEN0: PROCfilehandler_
  7206. 2.8
  7207. formatfloppy(“2”)
  7208. 2.8
  7209. 28700 ENDCASE
  7210. 2.8
  7211. 28710 =0
  7212. 2.8
  7213. RUN
  7214. 2.8
  7215. When you wish to use the three floppy version of the desktop, instead of
  7216. typing *DeskTop, enter */DeskTop, this will ensure that the upgrade
  7217. program in the library directory is run instead of activating the
  7218. desktop in the normal way.
  7219. 2.8
  7220. Unfortunately, there is no way of permanently updating the desktop so
  7221. that you can power up into the desktop with three floppies since it is
  7222. held in ROM which obviously cannot be changed.
  7223. 2.8
  7224. If you wish to power up in the desktop with three floppies then you
  7225. could do the following:
  7226. 2.8
  7227. *Configure Boot
  7228. 2.8
  7229. *Configure Language 0
  7230. 2.8
  7231. and setup a !Boot file as follows:
  7232. 2.8
  7233. */Desktop
  7234. 2.8
  7235. ensure that when you switch the computer on, your boot disc is in drive
  7236. 0 (or your default drive as configured with *Configure Drive) and the
  7237. desk top will appear after a short delay.
  7238. 2.8
  7239. N.B. No damage will be caused to the disc in powering up with the disc
  7240. in the drive since the latch will be across the disc surface and the
  7241. disc heads not in contact with the disc surface.
  7242. 2.8
  7243. The other solution is to upgrade to RISC-OS which can support up to four
  7244. floppies! Darren Jackson
  7245. 2.8
  7246. •   Zarch − To put Zarch onto a hard disk, use....
  7247. 2.8
  7248. *UNPLUG SoundChannels
  7249. 2.8
  7250. *ZARCH
  7251. 2.8
  7252. When error occurs type the following,
  7253. 2.8
  7254. *RMREINIT SoundChannels
  7255. 2.8
  7256. *SAVE :4.ZARCHcopy 8000+20800
  7257. 2.8
  7258. *BUILD :4.ZARCHgo
  7259. 2.8
  7260. LOAD ZARCHcopy
  7261. 2.8
  7262. MEMORYA E1AC E1A0F00E
  7263. 2.8
  7264. CHANNELVOICE 1 6
  7265. 2.8
  7266. CHANNELVOICE 2 7
  7267. 2.8
  7268. CHANNELVOICE 3 8
  7269. 2.8
  7270. CHANNELVOICE 4 9
  7271. 2.8
  7272. GO 1FF30
  7273. 2.8
  7274. Then press <escape>. Type ZARCHgo to run the copy from hard disk. Tony
  7275. Porter
  7276. 2.8
  7277.  
  7278. 2.8
  7279. First Word Plus Extended Dictionary
  7280. 2.8
  7281. I was asked to review the First Word Plus Extended Dictionary which is
  7282. available from Science Frontiers. It seems unfair to review it in only
  7283. one paragraph, but Paul’s maxim is, “Space in Archive is at a premium,
  7284. so say what is worth saying as briefly as possible, then shut up!”
  7285. (Well, that’s the jist of what I say! Ed.)
  7286. 2.8
  7287. First Word Plus Extended Dictionary comprises an 80,000 word dictionary
  7288. which replaces that in the Acorn package, and three specialized
  7289. supplementary dictionaries covering computer terms, geographical
  7290. locations and Christian names. It is an entirely competent package,
  7291. though necessarily not the most fascinating in content. If you need more
  7292. words in your dictionary, buy it, but if you need to work with large
  7293. documents, do not load it, as bigger dictionaries do take up more space.
  7294. 2.8
  7295. FWP Extended Dictionary costs £6.95 (£6.50 from Archive) and is produced
  7296. by Science Frontiers.
  7297. 2.8
  7298. From FWP to DTP?
  7299. 2.8
  7300. Although it is not strictly the business of the First Word Plus column,
  7301. I took a good look at the Desktop Publishing program when visiting the
  7302. Acorn stand at the Which Computer? Show. It should be available a few
  7303. weeks after RISC-OS and is reported to be “finished” and about to go
  7304. into production. However, it was apparently not the “finished” version
  7305. at the show. My informant assures me that the production version will be
  7306. even better, which should certainly be good indeed. Even the present
  7307. version has a ‘secret’ feature which is quite impressive and even Apple
  7308. cannot match it.
  7309. 2.8
  7310. <ctrl−A> Solution?
  7311. 2.8
  7312. I have discovered why my “<ctrl-a> makes a bleep” modules reported in
  7313. Archive 2.5 p. 18 absolutely refused to work: the answer is on the top
  7314. of page 34 of the Programmer’s Reference Manual: never use OS_WriteC
  7315. routines when you have intercepted an interrupt. The solution (but don’t
  7316. hold your breath) is to insert a <ctrl-g> into the input buffer. This
  7317. works absolutely perfectly − except in FWP, where it is interpreted as a
  7318. call to read the ruler!!
  7319. 2.8
  7320. No-one else has produced a solution which actually works, so the small
  7321. prize is still unclaimed.
  7322. 2.8
  7323. Shareware disk N¼6
  7324. 2.8
  7325. We get a lot of enquiries about printer drivers. The problem is that we
  7326. do not have that many different kinds of printer, so cannot help much.
  7327. Besides, printer drivers are (however necessary and satisfactory a
  7328. solution they may be) a pain and a bore, except when they are to drive
  7329. the printer you use. I am trying to compile a disk of all the contrib
  7330. uted “goodies”, especially printer drivers and related information and
  7331. ideas. If you have a contribution, please let me have it in the next
  7332. couple of weeks. We have printer drivers for: Taxan-Kaga KP810 = Canon
  7333. PW 1080; Citizen 120; Epson LX800 and LQ500; Star LC10 and NL10;
  7334. Panasonic KXP1080; H-P DeskJet. Quite a few of these have interesting
  7335. variants and associated ideas which may be useful for doing the special
  7336. things you want to do with your printer.
  7337. 2.8
  7338. Once the shareware disk is available, printer driver enquiries will be
  7339. at the bottom of the pile!
  7340. 2.8
  7341. (Mike sent me a pre-release version of this which I published as
  7342. Shareware N¼6, thinking it was the finished article. Ooops! We will
  7343. continue to supply N¼6 as it is and then offer free up-grades when the
  7344. final version is ready. Sorry about that! Ed.)
  7345. 2.8
  7346. Two related matters
  7347. 2.8
  7348. •   If you get the monthly disk, you will probably have installed the
  7349. IntModule from Steve Hoare (Archive 2.6, p. 44), and you will agree with
  7350. me that it is quite the best thing that has happened to First Word Plus
  7351. since its launch! I am sure that my life-expectancy has been increased
  7352. by being able to access the “*” commands we all love (and hate). If you
  7353. have not installed it, copy the IntModule to your 1st Word startup disk,
  7354. then modify !boot by adding lines 23 and 26 as follows:
  7355. 2.8
  7356. 23 *rmrun IntModule
  7357. 2.8
  7358. 26 *Interrupt 15
  7359. 2.8
  7360. Now if you press <ctrl-o>, the screen goes bright blue and gives you a *
  7361. prompt. Create your directories, mount disks or whatever, then just *
  7362. <return> and you are back. Wonderful. If you do not get the disks, more
  7363. fool you, this one was worth a year’s subscription, but it will be on
  7364. the proposed “shareware” disk.
  7365. 2.8
  7366. •   Just who do you think we are? Not very different from you is the
  7367. answer, I guess. I suspect that most of the contributors to Archive are
  7368. either people who enjoy computers as a hobby which can be useful, people
  7369. who use computers as part of their work, but are not professionals in
  7370. computing, or students or teachers of computing. I am actually a vet.
  7371. who does human genetics and immunology research, approaching fifty, bald
  7372. and paunchy! The point is, please do not expect too much from us/me. I
  7373. actually took this column on when a broken collar-bone got in the way of
  7374. decorating! Sadly, bones healÉ
  7375. 2.8
  7376. Two quickies
  7377. 2.8
  7378. •   If you have more than one sprite in a file, FWP only loads the first
  7379. sprite.
  7380. 2.8
  7381. •   There is a funny bug in the spelling list : FABRICATION is flagged
  7382. as wrong, but it appears when you browse. To add confusion, when you ask
  7383. to guess, it comes up with faArication, which is unbrowsable!! Thanks to
  7384. Colin Garlick. A review of letters received earlier reveals that the
  7385. problem is more widespread than this: Kenneth Gardner rep-orts that the
  7386. same (?) bug affects fable, fabric, -ate, -ated, -ation, fabulous, -ly,
  7387. fab, haar, maar, nascelle, oaf, zag. Kenneth provides more data on
  7388. making merged supplementary dictionaries, but the problem is obviously a
  7389. bug. Over to you Acorn!
  7390. 2.8
  7391. FWP and RISC-OSÉ
  7392. 2.8
  7393. The support disk which comes with RISC-OS has the necessary instructions
  7394. for conversion and the files. It is in the Acorn directory.
  7395. 2.8
  7396. It may be easier to have Edit installed and the mode set to 0 before you
  7397. start. Then you can have a decent RAMfs space for the copied files
  7398. (assuming you do not have two drives). You can keep the instructions in
  7399. sight this way.
  7400. 2.8
  7401. Éand the IntModule
  7402. 2.8
  7403. It is all quite smooth, but if you want the splendid IntModule facility
  7404. to give you access to the OS, it is a bit more complicated. Edit has no
  7405. “load” command. You load things by grabbing their icons and dropping
  7406. them on the installed Edit icon. But it is not obvious how to get at the
  7407. “Obey” files in the !1stWord+ directory from the desktop. The secret is
  7408. to hold down shift while clicking on the !1stWord+ directory. You should
  7409. be a bit careful about what you do, so make a backup before mucking
  7410. about. Now edit it as follows:
  7411. 2.8
  7412. a)   (This is most important.) Rename the !Run file you got from the
  7413. Support Disc as, e.g. !RunAcorn.
  7414. 2.8
  7415. b)   Insert tthree lines before that beginning “run” (next to last) (the
  7416. third line is optional − it turns the caps lock off)
  7417. 2.8
  7418. rmload $.intmodule
  7419. 2.8
  7420. interrupt 15
  7421. 2.8
  7422. fx202,48 REM
  7423. 2.8
  7424. c)   Save as !Run
  7425. 2.8
  7426. d)   Check that the file type is obey. If not, get an OS prompt by
  7427. pressing f12 on the desktop and “Setfiletype !run obey”.
  7428. 2.8
  7429. e)   Remember to copy IntModule onto the disk in directory $.
  7430. 2.8
  7431. It should work, accessing the OS when <ctrl-O> is pressed, though I get
  7432. a white border around the top and right after going to the OS but it
  7433. seems to go away, though.
  7434. 2.8
  7435. I suspect there are a few missing twiddly bits about ensuring that the
  7436. correct directory names are used, so I still have some reading to do.
  7437. More next month!
  7438. 2.8
  7439. It also happens that you can edit obey files in FWP, and further, FWP is
  7440. not squeemish about loading the “Obey” files from an application
  7441. directory. If you do this you will certainly have to set the filetype.
  7442. 2.8
  7443. First Mail
  7444. 2.8
  7445. Here are a couple more tips on 1st Mail from Glyn Emery:
  7446. 2.8
  7447. Mail merging normally means sending the same, or very slightly differ
  7448. ent, letters to a number of recipients. I recently had occasion to turn
  7449. this process on its head and send several different letters to the same
  7450. recipient; but I found 1st Mail up to the task. The occasion was that I
  7451. had to write reports on a batch of candidates, which, for the conveni
  7452. ence of his filing system, I prepared in the form of a batch of separate
  7453. letters all addressed to the administrator involved. To print them I
  7454. prepared a “merge from” file as follows:
  7455. 2.8
  7456. read text
  7457. 2.8
  7458. display “text letter started”
  7459. 2.8
  7460. includefile letterhead
  7461. 2.8
  7462. includefile dat.administrator
  7463. 2.8
  7464. Dear Mr Administrator
  7465. 2.8
  7466. includefile doc.text
  7467. 2.8
  7468. Yours sincerely
  7469. 2.8
  7470. display “letter finished”
  7471. 2.8
  7472. repeat
  7473. 2.8
  7474. “text” here is used as a 1st Mail keyword. The file “letterhead”
  7475. incorporates the date. I put a hard page break just before the repeat
  7476. command to make the sheet-feeder on my printer pick up the next piece of
  7477. A4. The “display” commands were put in during development and proved to
  7478. be too confidence-giving to be deleted. The file dat.administrator is
  7479. the administrator’s address.
  7480. 2.8
  7481. The reports, together with a covering letter were prepared as separate
  7482. files; and a datafile was prepared listing the file names. This was
  7483. saved in the dat. directory, not forgetting to switch off WP mode before
  7484. saving it. If you don’t switch off WP mode the merge tends to “hang”. I
  7485. don’t know why.
  7486. 2.8
  7487. The second point is that I have incorporated Steve Hoare’s IntModule
  7488. (Archive 2,6 p44) into the libraries of my letter-writing discs.
  7489. Unfortunately Steve’s suggestion to use <ctrl-@> does not quite work for
  7490. me, because the £ key seems to return ASCII 0 in the First Word Plus
  7491. context, presumably in order that different codes for £ can be included
  7492. to satisfy different printers. Steve, being in America, probably had no
  7493. occasion to notice this. What I did in the end was to include
  7494. 2.8
  7495. *RMLoad %.IntModule
  7496. 2.8
  7497. *Interrupt 205 1stMail
  7498. 2.8
  7499. into the startup program for First Word Plus, and
  7500. 2.8
  7501. *RMLoad %.IntModule
  7502. 2.8
  7503. *Interrupt 205 1stWord+
  7504. 2.8
  7505. into the startup program for 1stMail. I can then use the “insert” key to
  7506. toggle between the two, and save quite a lot of keystrokes in doing so.
  7507. Notice that I had to use % in the RMLoad command but not in the
  7508. Interrupt command because % appears in my Run$Path but not in my
  7509. File$Path.
  7510. 2.8
  7511. An interesting application for FWP
  7512. 2.8
  7513. Dave Livsey
  7514. 2.8
  7515. Those of you who, like me, have to report on the progress of large
  7516. numbers of individuals of various levels of ability (i.e. teachers!) and
  7517. are the proud possessors of an Archimedes and First Word Plus now have
  7518. the means to reduce the increasingly onerous task of reporting, imposed
  7519. by the introduction of ‘records of achievement’ (ROA). (If you do not
  7520. have First Word Plus, or something better, you deserve all the hard work
  7521. you have to do!) Using First Word Plus, it is fairly easy to set up a
  7522. ‘Mail merge’ which will print out the documents required for the ROA.
  7523. 2.8
  7524. The clue to doing this lies in the example mail-merge letter on the
  7525. First Word Plus disk. As with most problems, there are probably many
  7526. (or, at least, a few) different solutions − this is one. I hope it will
  7527. help reduce your load as much as it has mine!
  7528. 2.8
  7529. In all that follows, the underlined words below are supposed to be in
  7530. light type which I am unable to print in Elite type. The page numbers
  7531. refer to the First Word Plus handbook.
  7532. 2.8
  7533. In outline, you will need to set up four files: a command file, a data
  7534. file, a file containing the com-ment bank and the ‘main’ file (which
  7535. corresponds to the letter in the mail-merge example).
  7536. 2.8
  7537. The command file (called ‘command’): This needs to contain the informa
  7538. tion which indicates the location of the data file (see below), any
  7539. individual input to the ROA document (‘input’ typed in ‘light’ type
  7540. p.165 − 169 ) and a reference to the basic form as an ‘includefile’
  7541. statement. The WP mode can be left switched on when creating this file
  7542. and saving it.
  7543. 2.8
  7544. The data file (‘formdata’) must be created in the dat. directory and
  7545. contains only the data you wish to be inserted into the final document
  7546. as it is printed and is simply a list of names (firstname, secondname),
  7547. sex (He/She), tutor group (or Form, or whatever cockeyed system your
  7548. educational establishment has decided to inflict on you), date and any
  7549. other required information. As pointed out in the handbook, each item of
  7550. data must be separated from the next by a comma. There is also a problem
  7551. of commas in an item of data but this is catered for by enclosing them,
  7552. as explained on p.165. A specimen layout could be as shown :
  7553. Fred,Bloggs,He,4Z,Nov 1988,Swahili
  7554. 2.8
  7555. Note that the data fields are comma separated fields and may include
  7556. spaces (p.165). This file must be created in non-WP mode and the mode
  7557. left switched off when saving; ignore the pop-up reminder which appears
  7558. when you try to save the file.
  7559. 2.8
  7560. The comment bank file (‘ROA’), obviously, contains all the comments
  7561. which you may wish to make about any group of students. Each comment is
  7562. prefixed by a suitable identifier e.g. K1. In order to be able to use
  7563. these comments, each identifier must be set up as a keyword (p.163) by
  7564. preceding it with ‘setval’ in light type e.g.
  7565. 2.8
  7566. setval K1, “name1 is a complete idiot when it comes to practical work.
  7567. sex is a complete liability as sex has 11 thumbs on two left hands.”
  7568. 2.8
  7569. Note the <,> and the <“>. I found that it was easier to type the comment
  7570. with the WP mode switched on and then to switch the WP mode off and move
  7571. all the text onto one line. The WP mode was then switched on again as
  7572. the document does not print out correctly otherwise.
  7573. 2.8
  7574. The setval definition seems to need all the text on one line but as this
  7575. can be 160 characters long, that is not too much of a problem. These
  7576. definitions can also contain key words, in light type, for insertions
  7577. from the data file into the final document. This is useful as it means
  7578. that you can specify he or she along with the name in the data file.
  7579. N.B. Changing the ruler turns off the ‘light’ type causing the defini
  7580. tions and insertions to be ignored in the final print-out.
  7581. 2.8
  7582. The final file (called ‘form’); the document you are going to print,
  7583. contains very little other than keywords spaced out as is appropriate
  7584. for your ROA. The first line must be a read statement which, being a
  7585. keyword is in light type. Following this is a list of fields in ordinary
  7586. type and in the same order as in the data file. The rest of the file is
  7587. mainly spaces preceded by a keyword placed where you want your printing
  7588. to be done. Eg.
  7589. 2.8
  7590. read name1,name2,sex,date,tutor, subject (reads from ‘formdata’)
  7591. 2.8
  7592. name1, name2 tutor subject date
  7593. 2.8
  7594. includefile ROA (this reads in the comment bank)
  7595. 2.8
  7596. name1 K1 (prints “Fred is an idiot .....”)
  7597. 2.8
  7598. sex C3 (prints in the comment on comprehension)
  7599. 2.8
  7600. sex I1 (prints in the comment on intelligence) etc.
  7601. 2.8
  7602. This file will, of course, need the WP mode swit-ched on in order to
  7603. retain all the formatting infor-mation which is necessary for the
  7604. automatic form-atter to work when insertions are made in the text.
  7605. 2.8
  7606. The ROA is printed out by clicking on ‘form’ and ‘formdata’ (from the
  7607. doc. directory) using the mail-merge facility on the First Word Plus
  7608. disc. Full details of this are given in the Handbook.
  7609. 2.8
  7610. Font Fiddling on First Word Plus
  7611. 2.8
  7612. Reg Dalton (& Steve Bass)
  7613. 2.8
  7614. Reg tells us the saga of creating character sets for First Word Plus and
  7615. his NEC P2200. A sample printout is shown opposite, and the programs and
  7616. printer drivers are on the program disc and downloadable from Eureka II.
  7617. 2.8
  7618. In an earlier edition of Archive (1.12 p 7) was printed a short routine
  7619. to convert the extra fonts, supplied on the Master Welcome disc, from
  7620. BBC to Archimedes format. On the face of it, this looked as if it would
  7621. be a useful little routine but there was a problem; only half of the
  7622. character set was defined. i.e. characters 32 to 126. My friend Steve,
  7623. in his wisdom, decided that one of the fonts (7by8) looked very good
  7624. with First Word Plus and decided to redefine the rest of the characters
  7625. to match the ones already done.
  7626. 2.8
  7627. The next step in the story was when I foolishly mentioned that it would
  7628. be quite simple to set up First Word Plus to utilise the IBM graphics
  7629. available in one of the alternative character sets within the printer we
  7630. both had (NEC P2200). We then decided that redesigning the fonts using
  7631. the Master was not the way to do this, mainly because the fonts would
  7632. then have to be converted to Archimedes, so we converted the CHARDES
  7633. program, which was mainly in BASIC, to a form that would save fonts in
  7634. the correct format and also run with the Archimedes mouse.
  7635. 2.8
  7636. The problem of modifying the program to work on the Archimedes was not
  7637. too difficult by even an amateur programmer’s standards but to make it
  7638. save the font in its correct form for the Archimedes proved more
  7639. problematical. A number of abortive attempts were made to rewrite the
  7640. save font routine but each time nothing was achieved except making the
  7641. computer’s character set look like hieroglyphics. Eventually, it all
  7642. fell into place and we had a working program.
  7643. 2.8
  7644. We then decided that a program for transposing characters within the
  7645. character set itself might not be a bad idea. This was written fairly
  7646. speedily, but then the next task was to create the printer driver for
  7647. First Word Plus. This marathon is usually achieved by modifying an
  7648. existing wordprocessor/printer driver file, which involves changing the
  7649. relevant values for the various functions listed within the file, e.g.
  7650. superscript, subscript, nlq etc. After this fairly simple part comes the
  7651. task of entering all the codes to achieve the extra characters which
  7652. cannot enter from the keyboard. For characters 32 to 127 this was
  7653. obviously quite simple as all that was needed in this instance was each
  7654. character’s number, but it was soon noticed by both of us that the
  7655. characters between &80 and &9F (decimal 128 to 159) were not defined by
  7656. the existing list. After an abortive attempt to define these characters,
  7657. and failing to get them to install, it was decided that we would have to
  7658. discard 32 (yes a whole 32) of the characters so lovingly designed by
  7659. Steve.
  7660. 2.8
  7661. Notes on the font fiddling programs
  7662. 2.8
  7663. (These refer to programs on the monthly disc.)
  7664. 2.8
  7665. 1   !BOOT is the program for interchanging the position of the
  7666. characters.
  7667. 2.8
  7668. 2   After running the above program, the Acorn Character Designer
  7669. Program (modified for use on the Archimedes), Chardes_C, can be entered
  7670. and 1 above repeated as many times as necessary.
  7671. 2.8
  7672. 3   The modified Printer driver for 1WP is in the CFG directory.
  7673. 2.8
  7674. 4   The modified Printer driver hex file for 1wp is in the HEX
  7675. directory.
  7676. 2.8
  7677. 5   Before booting the disc, the font style to be modified must first be
  7678. loaded e.g. by using *NEC_Afont.
  7679. 2.8
  7680.  
  7681. •   External drive hang-ups −  If you have an external 5.25“ drive
  7682. configured and it is not kept on-line (i.e. it is switched off) then the
  7683. machine hangs up if the ADFS is searching for a named disc which is not
  7684. in drive 0 at the time that the command was issued, e.g. when attempting
  7685. to copy file(s) from one 3.5” disc to another. The solution appears to
  7686. be either always have the external drive switched on, or to configure it
  7687. out of the system during periods when it is switched off.
  7688. •   GWBASIC to BBC BASIC − I wanted to convert a GWBASIC program to a
  7689. BBC BASIC one, but both BASIC’s store programs with the keywords
  7690. tokenised. Therefore I needed the equivalent of the *SPOOL command. The
  7691. answer seems to be that from GWBASIC either:
  7692. SAVE “filename”,A
  7693. or
  7694. LIST ,“filename”
  7695. Both give a version of the listing which, when ported across via
  7696. putfile, can be *EXEC-uted.
  7697. •   Mouse problems − I had a problem with my mouse. Sometimes when I
  7698. moved the mouse down, the pointer moved UP. At other times it worked
  7699. perfectly. I tried everything − including measuring the electronics
  7700. inside the mouse, and inside the keyboard, adjusting the sensitivity and
  7701. cleaning the inside and outside of the mouse. Finally I discovered that
  7702. the problem was a broken wire in the cable out from the mouse. Odd
  7703. Bakken
  7704. 2.9
  7705. •   NEC multisync modifications − With a NEC multisync II monitor, I
  7706. found that the horizontal width of the picture was not optimal. There
  7707. was a black border on each side of the picture and, in modes 18-20, the
  7708. picture was even smaller, making the letters a little hard to read. I
  7709. called the local dealer and got a copy of their service manual. You can
  7710. adjust the horizontal size with coil L505. I got some improvement by
  7711. removing the core of the coil but not enough. So I shorted the coil
  7712. completely (after consulting the dealer, who said it would not harm the
  7713. monitor). By doing this I got a 10% wider picture. (I still have the
  7714. distortion of the top lines in mode 18-20.) Odd Bakken
  7715. 2.9
  7716. •   OS_PrettyPrint − There has been very little in the literature about
  7717. the use of OS_PrettyPrint to avoid word wraparound in, for example, the
  7718. preparation of instruction notes at the beginning of a program. (You can
  7719. use SYS &44 instead of writing the full command). All that is needed is
  7720. a simple BASIC program such as :
  7721. 2.9
  7722.    10 SYS &44,“<Block of words>”
  7723. 2.9
  7724.    20 PRINT;“ ”;:REM Insert space
  7725. 2.9
  7726. or    20 PRINT:REM New Line
  7727. 2.9
  7728.    30 SYS &44,“<Continuation of
  7729. 2.9
  7730.  text>“
  7731. 2.9
  7732.    40 PRINT;“ ”;       etc.
  7733. 2.9
  7734. The text in line 30 continues from the point where it ended in line 10.
  7735. Unfortunately the OS command strips the leading and trailing spaces from
  7736. the block of text. The PRINT statements are therefore necess-ary to
  7737. separate the end of the text in line 10 from the beginning of the text
  7738. in line 30 or to force a new line. The word block length has the
  7739. standard BASIC line limitation which amounts to roughly three lines of
  7740. text in the 80 chars/line modes. The command works in any mode and by
  7741. judicious placing of PRINT and COLOUR statements you can have sections
  7742. of the text or even single words in colour.
  7743. 2.9
  7744. •   Pipedream and the LC10 − To print in colour on a Star LC 10 colour
  7745. printer, if Pipedream is config-ured with a printer driver which
  7746. includes the follow-ing codes, the various printing styles available on
  7747. the Star LC 10 C can be selected when the printer is switched on, and
  7748. printed in colour.
  7749. 2.9
  7750.       On   Off   Description
  7751. 2.9
  7752.    H1   27 114 1   27 114 0   Red Text
  7753. 2.9
  7754.    H2   27 114 2    27 114 0   Blue Text
  7755. 2.9
  7756.    H3   27 114 3   27 114 0    Violet Text
  7757. 2.9
  7758.    H4   27 114 4   27 114 0   Yellow Text
  7759. 2.9
  7760.    H5   27 114 5    27 114 0   Orange Text
  7761. 2.9
  7762.    H6   27 114 6   27 114 0   Green Text
  7763. 2.9
  7764. •   Pipedream line spacing − (Colton Software’s reply to a request for
  7765. 1.5 line spacing on Pipedream) Pipedream knows only integral line
  7766. spacing; single, double etc, but the line spacing on the printer can be
  7767. set independently by sending out some codes with the printer-on string
  7768. (PON). For example, PON       ESC “2” would give 1.5 line spacing on
  7769. Epson compatible printers.
  7770. 2.9
  7771. •   Multi Sync Owners! Out here in New Zealand, the average multisync
  7772. monitor costs about £60 more than the standard Acorn monitor. As a
  7773. result around 60-80% of Archimedes owners have multisync’s. I haven’t a
  7774. clue as to why they are so much dearer in the U.K. but suggest that
  7775. someone somewhere is making a great deal of money! Most of the programs
  7776. available don’t provide a multisync option which is a real shame as that
  7777. extra 256 pixels make all the difference. I’ve tried to convert some
  7778. programs but haven’t had much luck except for Render Bender.
  7779. 2.9
  7780. To convert Render Bender proceed as follows:
  7781. 2.9
  7782. Make a new backup of your Render Bender System Disc. Label it “Render
  7783. Bender Modes 15 & 21” or somesuch. Enter BASIC and load the main program
  7784. “!RENDER.RENDER”. Change or add the following lines.
  7785. 2.9
  7786.    60 DIM loadadd &F100,sb1%32*1023
  7787. 2.9
  7788. :org=loadadd+&A100
  7789. 2.9
  7790.  2550 XRES=640:YRES=256:SC%=100:
  7791. 2.9
  7792.  DES=1000:IND=1.5:SKYCOL=13
  7793. 2.9
  7794. :SKYDEP=600:AVE=1:SHAD=1:SHGR=0
  7795. 2.9
  7796.  2950 IF YRES=256 AND SCRADD%<=
  7797. 2.9
  7798. &1FB0000 YRES=512:PROCbox
  7799. 2.9
  7800. (17,16,14,2,“HIGH*RESOLUTION”
  7801. 2.9
  7802. ,14,0):ENDPROC
  7803. 2.9
  7804.  2960 YRES=256:PROCbox(17,16,14,2,
  7805. 2.9
  7806. “LOW*RESOLUTION”,14,0):ENDPROC
  7807. 2.9
  7808.  3981 IF RES=320 THEN XRES=640:
  7809. 2.9
  7810. YRES=256
  7811. 2.9
  7812. 13590 vars!xlim=XL:vars!ylim=YL
  7813. 2.9
  7814. :vars!reso=XRES
  7815. 2.9
  7816. 14010 A$=LEFT$(name$,8):A$=A$+
  7817. 2.9
  7818. STR$FILFR%:IF YRES=256 ENS%
  7819. 2.9
  7820. =&28000 ELSE ENS%=&50000
  7821. 2.9
  7822. 14090 XL=XRES/SIZE%:YL=YRES/SIZE%
  7823. 2.9
  7824. :PROCcoeffin
  7825. 2.9
  7826. 14110 IF YRES=256 MODE15 ELSE MODE21
  7827. 2.9
  7828. 14190 IF YRES=256 MODE15 ELSE MODE21
  7829. 2.9
  7830. 14280 XL=XRES/SIZE%:YL=YRES/SIZE%
  7831. 2.9
  7832. :PROCcoeffin:SCROFF%=1
  7833. 2.9
  7834. :PROCisflooron
  7835. 2.9
  7836. 14290 IF YRES=256 MODE15 ELSE MODE21
  7837. 2.9
  7838. 15150 IF YRES=256 PROCbox(17,16,14,2,
  7839. 2.9
  7840. “LOW*RESOLUTION”,14,1)ELSE PROCbox
  7841. 2.9
  7842. (17,16,14,2,“HIGH*RESOLUTION”,14,1)
  7843. 2.9
  7844. 11320 GCOL63 TINT 255:VDU5:IF
  7845. 2.9
  7846.  YRES=256 PRINTTAB(0,31);“Click
  7847. 2.9
  7848.  Mouse“ ELSE PRINTTAB(0,62);
  7849. 2.9
  7850. “Click Mouse”
  7851. 2.9
  7852. 14380 GCOL63 TINT255:IFYRES=256
  7853. 2.9
  7854.  PRINTTAB(0,31);“Time taken ”;
  7855. 2.9
  7856. :PROCtime(TI) :GCOL 25:PRINT;
  7857. 2.9
  7858. “ Click mouse” ELSE PRINTTAB(0,62);“Time taken ”; :PROCtime(TI):GCOL 25:
  7859. 2.9
  7860. PRINT;“ Click mouse”
  7861. 2.9
  7862. SAVE “:0.$.!RE*.RENDER”
  7863. 2.9
  7864. Then to modify the Picture Compressor
  7865. 2.9
  7866. $.!RE*.UTIL*.PICCOMP
  7867. 2.9
  7868. *BASIC
  7869. 2.9
  7870. *LOAD :0.$.!RE*.UTIL*.PICCOMP 8F00
  7871. 2.9
  7872. *ACCESS :0.$.!RE*.UTIL*.PICCOMP WR
  7873. 2.9
  7874. !&90C0=&E3520015
  7875. 2.9
  7876. !&90C4=&03A0B805
  7877. 2.9
  7878. !&92F0=&E3500015
  7879. 2.9
  7880. !&92F4=&03A08805
  7881. 2.9
  7882. *SAVE :0.$.!RE*.UTIL*.PICCOMP 8F00+534
  7883. 2.9
  7884. *SETTYPE :0.$.!RE*.UTIL*.PICCOMP &FFA
  7885. 2.9
  7886. To modify the Animator
  7887. 2.9
  7888. *BASIC
  7889. 2.9
  7890. LOAD“:0.$.!RE*.UTIL*.ANIROUT”
  7891. 2.9
  7892. 140DIM buff &50000,DUM 1:anipo%=DUM
  7893. 2.9
  7894. +&6000:PROCboot:!anipo%=0
  7895. 2.9
  7896. 1371IF !mode=21 length%=&50000
  7897. 2.9
  7898. 2251IF MODE=21 length%=&50000
  7899. 2.9
  7900. SAVE “:0.$.!RE*.UTIL*.ANIROUT”
  7901. 2.9
  7902. Finally to get Render Bender going you need a new startup file
  7903. 2.9
  7904. *BUILD :0.$.Rend21
  7905. 2.9
  7906. *ECHO <22> <21>
  7907. 2.9
  7908. *SET RENDER :0.$.!RENDER
  7909. 2.9
  7910. *set OBEY$DIR adfs::0.$.!RENDER
  7911. 2.9
  7912. *set FROM$DESK 0
  7913. 2.9
  7914. *SET RendHard1 adfs::4.$.GRAPHICS.
  7915. 2.9
  7916. !Render \ or your path here
  7917. 2.9
  7918. *SET HardRoot $
  7919. 2.9
  7920. *RMLOAD <RENDER>.Utilities.FSLOAD
  7921. 2.9
  7922. *RMLOAD <RENDER>.Utilities.PicComp
  7923. 2.9
  7924. *BASIC <RENDER>.START
  7925. 2.9
  7926. <Escape>
  7927. 2.9
  7928. *SETTYPE :0.$.Rend21 &FFE
  7929. 2.9
  7930. Then to run Render Bender using:
  7931. 2.9
  7932. *CO. SCR. 320K
  7933. 2.9
  7934. <ctrl-break>
  7935. 2.9
  7936. *:0.$.Rend21
  7937. 2.9
  7938. All this is supplied on the monthly program disc as a series of exec
  7939. files so to modify Render Bender you just do this (where <comment>=just
  7940. that!)
  7941. 2.9
  7942. <insert Render Bender Disc>
  7943. 2.9
  7944. LOAD“:0.!RENDER.RENDER”
  7945. 2.9
  7946. <insert program disc and *MOUNT or
  7947. 2.9
  7948.  use winnie>
  7949. 2.9
  7950. *EXEC Rendermods.RendMods
  7951. 2.9
  7952. <insert Render disc and *MOUNT>
  7953. 2.9
  7954. SAVE “:0.$.!RENDER.RENDER”
  7955. 2.9
  7956. LOAD “:0.!RENDER.UTIL*.ANIROUT”
  7957. 2.9
  7958. <insert my disc and *MOUNT or use
  7959. 2.9
  7960.  winnie>
  7961. 2.9
  7962. *EXEC Rendermods.AniMods
  7963. 2.9
  7964. <insert Render disc and *MOUNT>
  7965. 2.9
  7966. SAVE “:0.!RENDER.UTIL*.ANIROUT”
  7967. 2.9
  7968. COPY Rend21 across to $ <On Render
  7969. 2.9
  7970.  Disc!>
  7971. 2.9
  7972. *WIPE $.!RE*.U*.PICCOMP F~C <get rid
  7973. 2.9
  7974.  of old PicComp>
  7975. 2.9
  7976. COPY PicComp across to $.!RENDER.
  7977. 2.9
  7978. UTILITIES <On Render Disc!>
  7979. 2.9
  7980. then you should be ready to go!
  7981. 2.9
  7982. •   Eigenvalues of a matrix − The following program is meant for readers
  7983. who are interested in the determination of eigenvalues of a matrix. It
  7984. is based on the idea that the eigenvalues of a matrix do not change by a
  7985. similarity transformation. Decomposing a square, symmetric matrix S in
  7986. its lower and upper triangular forms (L and U respectively satisfying
  7987. LU=S) gives a new matrix UL having the same eigenvalues as S, since UL =
  7988. (U^−1)ULU. It can be proved that by repeating this process, a matrix is
  7989. obtained containing zero elements, except for the eigenvalues residing
  7990. on the main diagonal.
  7991. 2.9
  7992. Consider an arbitrary matrix M, having a number of rows equal to or
  7993. greater than its number of columns. Then M’M (M‘ standing for transposed
  7994. of M) is a square, symmetric matrix having the same eigen-values as M.
  7995. Some of these values may equal zero indicating that the dimensionality
  7996. of M is smaller than its number of columns. Or in other words, the
  7997. matrix spans an x-dimensional space, where x equals the number of non-
  7998. zero eigenvalues of M.
  7999. 2.9
  8000.   10 REM >Eig_values
  8001. 2.9
  8002.   20 :
  8003. 2.9
  8004.   30 ********************************
  8005. 2.9
  8006.   40 REM Eigenvalues of an arbitrary
  8007. 2.9
  8008.   50 REM matrix.  E.D. Engelhardt,
  8009. 2.9
  8010.  March 1989
  8011. 2.9
  8012.   60 ********************************
  8013. 2.9
  8014.   70 :
  8015. 2.9
  8016.   80 PROCinit
  8017. 2.9
  8018.   90 :
  8019. 2.9
  8020.  100 PROCmenu
  8021. 2.9
  8022.  110 :
  8023. 2.9
  8024.  120 PROCinput
  8025. 2.9
  8026.  130 :
  8027. 2.9
  8028.  140 start%=TIME
  8029. 2.9
  8030.  150 PROCmain
  8031. 2.9
  8032.  160 end%=TIME
  8033. 2.9
  8034.  170 :
  8035. 2.9
  8036.  180 PROCprint
  8037. 2.9
  8038.  190 END
  8039. 2.9
  8040.  200 ————————————————
  8041. 2.9
  8042.  210 DEFPROCinit
  8043. 2.9
  8044.  220 @%=&0A0A:CLS
  8045. 2.9
  8046.  230 ENDPROC
  8047. 2.9
  8048.  240 ————————————————
  8049. 2.9
  8050.  250 DEFPROCmenu
  8051. 2.9
  8052.  260 OFF
  8053. 2.9
  8054.  270 PRINTTAB(31,12)“EIGENVALUES”‘
  8055. 2.9
  8056.  280 PRINTTAB(27,14)“[1] Random matrix”
  8057. 2.9
  8058.  290 PRINTTAB(27,15)“[2] Fixed demo
  8059. 2.9
  8060.  5x4 matrix“
  8061. 2.9
  8062.  300 PRINTTAB(27,16)“[3] Fixed demo
  8063. 2.9
  8064.  4x4 matrix“
  8065. 2.9
  8066.  310 ENDPROC
  8067. 2.9
  8068.  320 ————————————————
  8069. 2.9
  8070.  330 DEFPROCinput
  8071. 2.9
  8072.  340 while=TRUE
  8073. 2.9
  8074.  350 WHILE while
  8075. 2.9
  8076.  360   CASE GET$ OF
  8077. 2.9
  8078.  370   WHEN “1”:while=FALSE:ON
  8079. 2.9
  8080.  380     REM Generate random matrix M,
  8081. 2.9
  8082.  col% columns and row% rows
  8083. 2.9
  8084.  390     REPEAT:
  8085. 2.9
  8086. INPUT‘“ Rows            : ”
  8087. 2.9
  8088. row%:UNTIL row%>0
  8089. 2.9
  8090.  400     REPEAT:INPUT‘“ Columns
  8091. 2.9
  8092. <= rows : “col%:UNTIL col%
  8093. 2.9
  8094. <=row% AND col%>0
  8095. 2.9
  8096.  410     CLS:
  8097. 2.9
  8098. PRINT‘“ Rows       : ”STR$
  8099. 2.9
  8100. row%‘“ Columns    : ”STR$col%
  8101. 2.9
  8102.  420     row%-=1:col%-=1
  8103. 2.9
  8104.  430     DIM M(row%,col%)
  8105. 2.9
  8106.  440     FORr%=0TOrow%:FORc%=0TOcol%
  8107. 2.9
  8108.  450       M(r%,c%)=RND(1)*SGN(0.5-
  8109. 2.9
  8110. RND(1))
  8111. 2.9
  8112.  460     NEXT:NEXT
  8113. 2.9
  8114.  470     :
  8115. 2.9
  8116.  480   WHEN “2”:while=FALSE:ON
  8117. 2.9
  8118.  490     REM *** Fixed data for demo
  8119. 2.9
  8120.  5x4 matrix having one zero
  8121. 2.9
  8122.  eigenvalue
  8123. 2.9
  8124.  500     CLS:PRINT‘“ Rows       : 5”
  8125. 2.9
  8126. ‘“ Columns    : 4”
  8127. 2.9
  8128.  510     row%=4:col%=3:DIM M(4,3)
  8129. 2.9
  8130.  520     M(0,0)=4:M(0,1)=3:M(0,2)=2:
  8131. 2.9
  8132. M(0,3)=1
  8133. 2.9
  8134.  530     M(1,0)=2:M(1,1)=4:M(1,2)=1:
  8135. 2.9
  8136. M(1,3)=3
  8137. 2.9
  8138.  540     M(2,0)=6:M(2,1)=7:M(2,2)=3:
  8139. 2.9
  8140. M(2,3)=4
  8141. 2.9
  8142.  550     M(3,0)=8:M(3,1)=11:M(3,2)=4:
  8143. 2.9
  8144. M(3,3)=7
  8145. 2.9
  8146.  560     M(4,0)=8:M(4,1)=6:M(4,2)=4:
  8147. 2.9
  8148. M(4,3)=7
  8149. 2.9
  8150.  570     :
  8151. 2.9
  8152.  580   WHEN “3”:while=FALSE:ON
  8153. 2.9
  8154.  590     REM Fixed data for demo 4x4
  8155. 2.9
  8156. matrix having four eigenvalues
  8157. 2.9
  8158.  600     CLS:PRINT‘“ Rows       : 4”
  8159. 2.9
  8160. ‘“ Columns    : 4”
  8161. 2.9
  8162.  610     row%=3:col%=3:DIM M(3,3)
  8163. 2.9
  8164.  620     M(0,0)=1.00:M(0,1)=0.42:
  8165. 2.9
  8166. M(0,2)=0.54:M(0,3)=0.66
  8167. 2.9
  8168.  630     M(1,0)=0.42:M(1,1)=1.00:
  8169. 2.9
  8170. M(1,2)=0.32:M(1,3)=0.44
  8171. 2.9
  8172.  640     M(2,0)=0.54:M(2,1)=0.32:
  8173. 2.9
  8174. M(2,2)=1.00:M(2,3)=0.22
  8175. 2.9
  8176.  650     M(3,0)=0.66:M(3,1)=0.44:
  8177. 2.9
  8178. M(3,2)=0.22:M(3,3)=1.00
  8179. 2.9
  8180.  660   ENDCASE
  8181. 2.9
  8182.  670 ENDWHILE
  8183. 2.9
  8184.  680 ENDPROC
  8185. 2.9
  8186.  690 ————————————————-
  8187. 2.9
  8188.  700 DEFPROCmain
  8189. 2.9
  8190.  710 DIM Mt(col%,row%),MtM(col%,col%)
  8191. 2.9
  8192. ,E(col%)
  8193. 2.9
  8194.  720 PROCtranspose(M(),Mt())
  8195. 2.9
  8196.  730 PROCsquare_sym(M(),Mt(),MtM())
  8197. 2.9
  8198.  740 PROCeigenvalues(MtM(),E())
  8199. 2.9
  8200.  750 ENDPROC
  8201. 2.9
  8202.  760 ————————————————-
  8203. 2.9
  8204.  770 DEFPROCtranspose(R(),Rt())
  8205. 2.9
  8206.  780 LOCAL v%,h%
  8207. 2.9
  8208.  790 v%=DIM(R(),1):h%=DIM(R(),2)
  8209. 2.9
  8210.  800 FOR r%=0 TO v%:FOR c%=0 TO h%:
  8211. 2.9
  8212. Rt(c%,r%)=R(r%,c%):NEXT:NEXT
  8213. 2.9
  8214.  810 ENDPROC
  8215. 2.9
  8216.  820 ————————————————-
  8217. 2.9
  8218.  830 DEFPROCsquare_sym(R(),Rt(),RtR())
  8219. 2.9
  8220.  840 RtR()=Rt().R()
  8221. 2.9
  8222.  850 ENDPROC
  8223. 2.9
  8224.  860 ————————————————-
  8225. 2.9
  8226.  870 DEFPROCeigenvalues(RtR(),EV())
  8227. 2.9
  8228.  880 REM Eigenvalues are determined
  8229. 2.9
  8230.  from R-transposed x R, using the property that eigenvalues do not
  8231. change by a similarity
  8232. 2.9
  8233.  890 REM ***  transformation. Rt.R is
  8234. 2.9
  8235.  decomposed in a lower and upper
  8236. 2.9
  8237.  tri-angular matrix, Rt.R=LU. Then
  8238. 2.9
  8239.  UL has the same eigenvalues as LU.
  8240. 2.9
  8241.  900 REM Repeating this process
  8242. 2.9
  8243.  iterates all non-diagonal elements              to 0, and the diagonal
  8244. elements
  8245. 2.9
  8246.  to the eigenvalues.
  8247. 2.9
  8248.  910 :
  8249. 2.9
  8250.  920 REM E.D. Engelhardt, March 1989
  8251. 2.9
  8252.  930 :
  8253. 2.9
  8254.  940 LOCAL L(),U(),UL(),h%,c%,r%,t%,
  8255. 2.9
  8256. repeat,max,iterations%
  8257. 2.9
  8258.  950 h%=DIM(EV(),1)
  8259. 2.9
  8260.  960 DIM L(h%,h%),U(h%,h%),UL(h%,h%)
  8261. 2.9
  8262.  970 :
  8263. 2.9
  8264.  980 PRINTTAB(1,30)“Iteration       : ”
  8265. 2.9
  8266.  :REM This info may be left out
  8267. 2.9
  8268.  990 :
  8269. 2.9
  8270. 1000 repeat=TRUE
  8271. 2.9
  8272. 1010 REPEAT
  8273. 2.9
  8274. 1020   iterations%+=1:PRINTTAB(13,30)
  8275. 2.9
  8276. iterations%  :REM may be left out
  8277. 2.9
  8278. 1030   REM Calculate lower triangle
  8279. 2.9
  8280.  L of RtR
  8281. 2.9
  8282. 1040   FOR c%=0 TO h%:FOR r%=c% TO h%
  8283. 2.9
  8284. 1050     L(r%,c%)=RtR(r%,c%):t%=c%-1
  8285. 2.9
  8286. 1060     IF t%>=0 FORt%=t%TO0STEP-1:
  8287. 2.9
  8288. L(r%,c%)=L(r%,c%)-L(r%,t%)
  8289. 2.9
  8290. *L(c%,t%):NEXT
  8291. 2.9
  8292. 1070     IF r%>c% THEN L(r%,c%)=
  8293. 2.9
  8294. L(r%,c%)/L(c%,c%)
  8295. 2.9
  8296. 1080     IF r%=c% IF L(r%,c%)<0 THEN:
  8297. 2.9
  8298. FOR t%=0 TO h%:L(t%,c%)=0:NEXT
  8299. 2.9
  8300. 1090     IF r%=c% L(r%,c%)=SQR L(r%,c%)
  8301. 2.9
  8302. 1100     IF r%=c% AND L(r%,c%)=0 r%=h%
  8303. 2.9
  8304. 1110   NEXT:NEXT
  8305. 2.9
  8306. 1120   :
  8307. 2.9
  8308. 1130   PROCtranspose(L(),U())
  8309. 2.9
  8310. 1140   :
  8311. 2.9
  8312. 1150   REM Matrix similar to RtR (ie
  8313. 2.9
  8314.  having same eigenvalues) is UL
  8315. 2.9
  8316. 1160   UL()=U().L()
  8317. 2.9
  8318. 1170   :
  8319. 2.9
  8320. 1180   REM Determine if diagonals of
  8321. 2.9
  8322.  RtR and UL are equivalent
  8323. 2.9
  8324. 1190   t%=0
  8325. 2.9
  8326. 1200   REPEAT
  8327. 2.9
  8328. 1210     IF UL(t%,t%)<>RtR(t%,t%)
  8329. 2.9
  8330. :repeat=FALSE
  8331. 2.9
  8332. 1220     t%+=1:IF t%>h% repeat=FALSE
  8333. 2.9
  8334. 1230   UNTIL repeat=FALSE
  8335. 2.9
  8336. 1240   IF t%<=h% repeat=TRUE:RtR()=
  8337. 2.9
  8338. UL()
  8339. 2.9
  8340. 1250 UNTIL repeat=FALSE
  8341. 2.9
  8342. 1260 :
  8343. 2.9
  8344. 1270 REM Put eigenvalues smaller then
  8345. 2.9
  8346.  non-diagonal elements to zero
  8347. 2.9
  8348. 1280 FOR t%=0 TO h%:UL(t%,t%)=0:NEXT
  8349. 2.9
  8350. 1290 FOR r%=1 TO h%-1:FOR c%=1 TO r%
  8351. 2.9
  8352. 1300   IF ABS UL(r%,c%)>max max=ABS
  8353. 2.9
  8354.  UL(r%,c%)
  8355. 2.9
  8356. 1310 NEXT:NEXT
  8357. 2.9
  8358. 1320 FOR c%=0 TO h%
  8359. 2.9
  8360. 1330   EV(c%)=RtR(c%,c%):IF EV(c%)<=
  8361. 2.9
  8362. max EV(c%)=0
  8363. 2.9
  8364. 1340 NEXT
  8365. 2.9
  8366. 1360 ENDPROC
  8367. 2.9
  8368. 1370 ————————————————
  8369. 2.9
  8370. 1380 DEFPROCprint
  8371. 2.9
  8372. 1390 VDU 14
  8373. 2.9
  8374. 1400 CLS:PRINT‘“ Rows       : ”STR$
  8375. 2.9
  8376. row%‘“ Columns    : ”STR$col%
  8377. 2.9
  8378. 1410 PRINT‘“ Time(centisecs) : ”;STR$
  8379. 2.9
  8380. (end%-start%)‘’
  8381. 2.9
  8382. 1420 PRINT“ ******** Eigenvalues : ”‘
  8383. 2.9
  8384. 1430 FOR c%=0 TO col%
  8385. 2.9
  8386. 1440   PRINT E(c%)
  8387. 2.9
  8388. 1450 NEXT:PRINT
  8389. 2.9
  8390. 1460 VDU 15
  8391. 2.9
  8392. 1470 ENDPROC
  8393.  
  8394. •   Partitioning hard drives − It is possible to partition hard drives
  8395. with less than 10 Mbyte. The answer is in the REM statements in the
  8396. Harddisc program on the PC disc. Change the A2080 in line 610 to any
  8397. multiple of &8800 (in hex). Details are given in the REMs.
  8398. •   Hearsay − We mentioned changing modem baud rates in H & T in May.
  8399. Philip Green sends us a way of doing this automatically suggested by
  8400. Alfons Tjin. Use a dial prefix in the modem driver edit screen of just
  8401. “AT” and then put B3D or B0D, as necessary, in front of the phone number
  8402. in the telephone directory.
  8403. •   Case sensitive system variables − Some readers have had problems
  8404. using the *SETMACRO Alias$ command. This is because system variables are
  8405. case sensitive i.e. you need to type: Alias$ not ALIAS$
  8406. •   Overload passwords:  A B BROS, CABBAGED, SLIPPERS, PREVIOUS,
  8407. PILLAGED, BOVERBOD, LAVATORY, CASSETTE, WHALEÊFM, EXTRACTS, STOPKETS
  8408. The following hints were sent in by Lorcan Mongey
  8409. •   ‘T’ Option in LDR and STR − Assembly language programmers may have
  8410. noticed that the Programmer’s Reference Manual mentions a ‘T’ option in
  8411. the description of the LDR and STR com-mands (page 608), but neglects to
  8412. say what it does. It is, in fact, used for setting the write-back option
  8413. and has exactly the same effect as ‘!’. Note that the *MEMORYI disassem
  8414. bler always disassembles pre-indexed write-back with ‘!’ and post-
  8415. indexed write-back with ‘T’, although you may use either form when
  8416. assembling. Bear in mind that post-indexed write-back always takes
  8417. place, regardless of the state of the write-back flag.
  8418. 2.10
  8419. •   Bit patterns for LDR and STR − There is an omission in Appendix C of
  8420. the “ARM Assembly Language programming” book published by Com-puter
  8421. Concepts. Appendix C gives the bit patterns of the ARM instruction set,
  8422. but does not describe the ‘L’ bit of the ‘Single Data transfer’
  8423. instruction. This is the Load/Store bit: 0=store (STR), 1=load (LDR).
  8424. 2.10
  8425. This description also applies to the ‘Block data transfer’ instructions
  8426. (STM and LDM).
  8427. 2.10
  8428. •   BASIC restrictions − In BASIC II on the BBC B (and IV on the Master)
  8429. there were a number of restrictions which no longer apply to BASIC V on
  8430. the Archimedes, but have not been specifically mentioned in the
  8431. Archimedes User Guide. They are worth noting because they have probably
  8432. become ingrained in BBC B users who may not have realised that they have
  8433. been lifted.
  8434. 2.10
  8435. 1) You can now change MODE inside a procedure or function. This is
  8436. because the screen RAM is now completely separate from the program area.
  8437. 2.10
  8438. 2) The nesting limits of FOR, REPEAT and GOSUB (10, 20 and 26 respec
  8439. tively) no longer apply. Instead of a fixed limit, you can now nest
  8440. loops until you run out of RAM. I have successfully nested loops 15,000
  8441. deep and run a recursive procedure 30,000 levels deep! Strangely,
  8442. nesting GOSUBs too deeply is not trapped and will corrupt your program,
  8443. but this situation is unlikely to happen in practice.
  8444. 2.10
  8445. •   BASIC errors − I have found four BASIC errors not listed in the User
  8446. Guide (Issue 2). They are:
  8447. 2.10
  8448. 11 No room for this dimension − An attempt was made to dimension an
  8449. array for which there was insufficient space.
  8450. 2.10
  8451. 25 Bad MODE − An attempt was made to select a screen mode for which
  8452. there is insufficient memory. More memory can be allocated by *CONFIGURE
  8453. SCREENSIZE.
  8454. 2.10
  8455. 37 No room for function/procedure call − An attempt was made to ‘nest’
  8456. too many function and/or procedure calls.
  8457. 2.10
  8458. 44 Too many nested structures − An attempt was made to ‘nest’ too many
  8459. FOR...NEXT, REPEAT...UNTIL and/or WHILE... ENDWHILE loops.
  8460. 2.10
  8461. Note that 11 and 44 are covered in the Archimedes 400 series BBC BASIC
  8462. Guide.
  8463. 2.10
  8464. •   Using FORTRAN 77 − The article on using FORTRAN 77 in Archive 1.7
  8465. included a sample subroutine showing how to access graphics from
  8466. FORTRAN. There are a number of problems with this subroutine. It can’t
  8467. cope with negative graphics coordinates (needed after an origin shift),
  8468. it sends a line feed to the screen when it is used, which can cause your
  8469. graphics to scroll upwards, and it uses an output channel which should
  8470. be kept free for file access. The following solves all the problems:
  8471. 2.10
  8472. SUBROUTINE PLOT(K,X,Y)
  8473. 2.10
  8474. INTEGER X,Y  I1=IAND(X,?IFF)
  8475. 2.10
  8476. I2=ISHFT(IAND(X,?IFF00),-8)
  8477. 2.10
  8478. J1=IAND(Y,?IFF)
  8479. 2.10
  8480. J2=ISHFT(IAND(Y,?IFF00),-8)
  8481. 2.10
  8482. PRINT 100,CHAR(25),CHAR(K),CHAR(I1),
  8483. 2.10
  8484. CHAR(I2),CHAR(J1),CHAR(J2)
  8485. 2.10
  8486. RETURN
  8487. 2.10
  8488. 100 FORMAT (6A1$)
  8489. 2.10
  8490. END
  8491. 2.10
  8492. This method masks out the unwanted bits and shifts the data into the
  8493. l.s.b., thus preserving the sign. It uses PRINT instead of WRITE,
  8494. avoiding the need for a channel number. The $ at the end of the FORMAT
  8495. statement suppresses the line feed. (No criticism of the original
  8496. authors is intended; my first attempt looked very similar!)
  8497. 2.10
  8498. Included on this month’s program disc is Graph_ FOR, the FORTRAN source
  8499. of a set of graphics subroutines which provide a full set of VDU calls.
  8500. Some, like BELL for instance, are trivial, but others are more
  8501. complicated.
  8502. 2.10
  8503. •   Printer conventions − Many people seem to have difficulty with
  8504. setting up the correct linefeed or non-linefeed for their printers for
  8505. different app-lications, so I.J. King has tried to explain it for usÉ
  8506. 2.10
  8507. How the Archimedes deals with varying printer standards − Since there
  8508. are two standards for printers, the Archimedes has a mechanism to allow
  8509. it to cope with both. The standards in question affect the way the paper
  8510. is fed through the mechanism and there are two possible cases:
  8511. 2.10
  8512.  A. Auto Linefeed: every time the printer receives a carriage return
  8513. character (code 13), it generates a line feed (code 10) to move the
  8514. paper up a line.
  8515. 2.10
  8516. B. Non-Auto Linefeed: the printer does not gener-ate its own linefeed
  8517. characters but relies on the com-puter to send a linefeed after every
  8518. carriage return.
  8519. 2.10
  8520. Most modern printers will actually have a switch to select either of
  8521. these modes, allowing them to be compatible with most computers, but
  8522. this is likely to be difficult to reach. The Archimedes will (in the
  8523. case of virtually all software) send a line feed after every carriage
  8524. return. To allow compatibility with printers in mode (A) above, it is
  8525. possible to tell the machine to ignore a particular code when sent to
  8526. the printer. By setting this to 10 (the code for line feed), no line
  8527. feeds will be sent to the printer and you are compatible with type (A)
  8528. printers.
  8529. 2.10
  8530. This code is set up using the *IGNORE command, for example:
  8531. 2.10
  8532. *IGNORE 10
  8533. 2.10
  8534. To disable the trap altogether, simply enter *IGNORE on its own. Either
  8535. of these may be preceded by CONFIGURE to make the effect permanent, e.g.
  8536. 2.10
  8537. *CONFIGURE IGNORE 10
  8538. 2.10
  8539. The Archimedes is set up with a factory default ignore code of 10,
  8540. making the system compatible with type (A) printers when it arrives.
  8541. 2.10
  8542. Problems arising when the protocol is ignored − The above should make
  8543. everything seem fairly simple and indeed it ought to be. However, some
  8544. software houses, notably GST and Grafox (i.e. First Word Plus and
  8545. Logistix) have chosen to ignore the sensible protocols described above
  8546. and override the *IGNORE status in such a way that they are only
  8547. compatible with type (B) printers, regardless of the setting of *IGNORE.
  8548. 2.10
  8549. This means that the hapless user will have been forced to configure his
  8550. printer to be type (B) but will not have re-configured his Archimedes
  8551. since the software will override the settings and work anyway. They then
  8552. go out and purchase a correctly written package, such as System
  8553. DeltaPlus etc, and the result is a type (B) printer (generating no line
  8554. feeds) on a machine configured for a type (A) printer (and so sending no
  8555. line feeds) which results in no line feeds at all and the text all comes
  8556. out on the same line.
  8557. 2.10
  8558. A subsidiary problem occurs in some cases, when reconfiguring the
  8559. Archimedes to work with type (B) printers, as is necessary if you wish
  8560. to use both First Word Plus/Logistix and other, correctly written,
  8561. software. The correct way to do this is to enter the command *CONFIGURE
  8562. IGNORE with no parameters, completely disabling the printer trap. It is
  8563. not correct to enter *CONFIGURE IGNORE 0 as this prevents code 0 from
  8564. being sent to the printer and may corrupt some graphics/font change
  8565. sequences used by certain software.
  8566. 2.10
  8567. Conclusions − If you are using any package which overrides the Acorn
  8568. protocols for printer compatibility in the way described above and also
  8569. wish to use correctly written software (in my case, I use both Logistix
  8570. and System DeltaPlus), you should take the following steps:
  8571. 2.10
  8572. 1. Set your printer so that Auto Linefeed is OFF (usually a DIP switch).
  8573. 2.10
  8574. 2. Enter *CONFIGURE IGNORE
  8575. 2.10
  8576. 3. Press <ctrl-break> to reconfigure your machine.
  8577. 2.10
  8578. This now only leaves us with one question − why are Acornsoft apparently
  8579. condoning this system of forcing the user to have a printer type
  8580. different from that for which the machine is configured by default?!
  8581. 2.10
  8582. •   PC Emulator Star Commands (Response to query in Archive 2.5 p5) −
  8583. There is no need for a *Configure Floppies command from the PC emul-ator
  8584. when copying from one 3.5“ disc to another. You must understand the
  8585. distinction between log-ical and physical drives: logical drives are
  8586. known to the emulator as A, B, C, etc, and are mapped onto the physical
  8587. drives 0, 1, etc. It is possible to have more than one logical drive
  8588. assigned the same phys-ical drive. This is what happens when you have
  8589. your Archimedes configured for one floppy − the emul-ator maps logical
  8590. drives A and B onto physical drive 0 and, recognising this when you copy
  8591. from A to B, prompts for a disc change. If you have two floppies, the
  8592. emulator maps A and B onto 0 and 1 respect-ively. I use an external
  8593. 5.25” 40/80 track drive on my Archimedes and my config.sys file, listed
  8594. below, illustrates the way around the problem.
  8595. 2.10
  8596. device=driver.sys /d:0 /t:80 /f:2
  8597. 2.10
  8598. device=driver.sys /d:1 /t:80 /f:2
  8599. 2.10
  8600. device=driver.sys /d:1 /t:40 /f:0
  8601. 2.10
  8602. device=driver.sys /d:1 /t:40 /f:0
  8603. 2.10
  8604. files=20
  8605. 2.10
  8606. buffers=10
  8607. 2.10
  8608. The first four lines assign more logical drives (which the emulator
  8609. gives the letters C, D, E and F) to the physical drives 0 and 1. The
  8610. meaning of the parameters is:
  8611. 2.10
  8612. /d: physical drive number
  8613. 2.10
  8614.    (0 for internal, 1 for external)
  8615. 2.10
  8616. /t: number of tracks on disc
  8617. 2.10
  8618.    (80 for 720k and 40 for 360k)
  8619. 2.10
  8620. /f: disc format
  8621. 2.10
  8622.    (2 means 720k, 0 means 360k)
  8623. 2.10
  8624. The first line assigns logical drive C to physical drive 0. You can now
  8625. copy from 3.5“ to 3.5” by using ‘copy a:x.dat c:’ and DOS will prompt
  8626. for a disc change. The second line maps logical drive D to physical
  8627. drive 1, enabling copying between 5.25“ 80-track floppies (copy b:x.dat
  8628. d:). The last two lines assign two 40-track drives (E and F) to physical
  8629. drive 1, allowing copying between 40-track 5.25” discs (copy e:x.dat f:)
  8630. in the same way.
  8631. 2.10
  8632. You should be aware that loading all these device drivers will use up
  8633. some application workspace, leaving less for programs, so only install
  8634. them when you need them!
  8635. 2.10
  8636. •   Three SWIs which are not mentioned in the Programmer’s Reference
  8637. Manual (Issue 1):
  8638. 2.10
  8639. OS_AddToVector &47
  8640. 2.10
  8641. OS_WriteEnv &48
  8642. 2.10
  8643. WaveSynth_Load &40300
  8644. 2.10
  8645. (WaveSynth_Load was mentioned but not ident-ified in Archive 1.8, p9)
  8646. 2.10
  8647. Also, there is one SWI which seems to have been mis-spelled in the
  8648. Arthur 1.20 ROMs, namely:
  8649. 2.10
  8650. Sound_QSDispatch &401C4
  8651. 2.10
  8652. The ‘S’ between Q and Dispatch shouldn’t be there. If you refer to SWIs
  8653. by name rather than number then you must mis-spell this one in the same
  8654. way otherwise it won’t be recognised!
  8655. 2.10
  8656. •   Infinite energy for ThunderMonk − J.R. Donaldson sent in this
  8657. program, which will alter your ThunderMonk disk to give you infinite
  8658. energy.
  8659. 2.10
  8660.  10 REM > Thun_Cheat
  8661. 2.10
  8662.  20 REM Joe Pineapples − Cool Assassin
  8663. 2.10
  8664.  30
  8665. 2.10
  8666.  40 DIM sector% &400
  8667. 2.10
  8668.  50
  8669. 2.10
  8670.  60 MODE 0
  8671. 2.10
  8672.  70 PRINT “Please insert ThunderMonk
  8673. 2.10
  8674.  disc and press a key.“
  8675. 2.10
  8676.  80 G = GET
  8677. 2.10
  8678.  90
  8679. 2.10
  8680. 100 PRINT ‘“Now loading relevant
  8681. 2.10
  8682.  sector“‘
  8683. 2.10
  8684. 110
  8685. 2.10
  8686. 120 SYS “ADFS_DiscOp”,, 1, &C6400,
  8687. 2.10
  8688.  sector%, &400
  8689. 2.10
  8690. 130
  8691. 2.10
  8692. 140 PRINT “Do you want to play
  8693. 2.10
  8694.  (C)heat or Normal ?“
  8695. 2.10
  8696. 150 G = GET
  8697. 2.10
  8698. 160
  8699. 2.10
  8700. 170 IF G=ASC(“C”) OR G=ASC(“c”) THEN
  8701. 2.10
  8702. 180   sector%!&388 = &E59C0044
  8703. 2.10
  8704. 190   sector%!&38C = &E28000FE
  8705. 2.10
  8706. 200   sector%!&390 = &E58C0044
  8707. 2.10
  8708. 210   ELSE
  8709. 2.10
  8710. 220   sector%!&388 = &059C0044
  8711. 2.10
  8712. 230   sector%!&38C = &02400001
  8713. 2.10
  8714. 240   sector%!&390 = &058C0044
  8715. 2.10
  8716. 250 ENDIF
  8717. 2.10
  8718. 260
  8719. 2.10
  8720. 270 PRINT ‘“Now saving relevant
  8721. 2.10
  8722.  sector“‘
  8723. 2.10
  8724. 280
  8725. 2.10
  8726. 290 SYS “ADFS_DiscOp”,, 2, &C6400,
  8727. 2.10
  8728.  sector%, &400
  8729. 2.10
  8730. 300
  8731. 2.10
  8732. 310 PRINT “Change complete. Now use
  8733. 2.10
  8734.  disc as normal.“
  8735. 2.10
  8736. 320 END
  8737. 2.10
  8738. •   Thunder Monk passwords − the Thunder Monk passwords change from disc
  8739. to disc (or do they change from month to month? Ed), but they can be
  8740. found at address &4E400. Just find your level two password in the list
  8741. below and next two words will be used for levels three and four e.g. our
  8742. level two password is STEVES so the passwords for the next levels are
  8743. BIRTHDAY and MIDSUMMER.
  8744. 2.10
  8745. SHIRT JUMPER WELLIES Y-FRONTS LOVERS HEARTS CUPID VALENTINE DANIEL AND
  8746. SIMONS BIRTHDAY JOKES SHOWERS FOOL SPRING POLE EXAMS SUNNY STUDY STEVES
  8747. BIRTHDAY MIDSUMMER WARMER HOLIDAYS MAJORCA SUNHAT HOTTER RESULTS FAILED
  8748. PASSED PISSUP SCORCHER RESTART SUNBURN ARCHIE SPOOK SHIVER HALLOWEEN
  8749. COOLING BONFIRE WEEEEEE FIREWORKS CHILLY CHRISTMAS HOLLY PRESENTS MERRY!
  8750. 2.10
  8751. (D’you get the significance of the passwords?? Ed.)
  8752. 2.10
  8753. •   View to FWP − When using the utility provided with First Word Plus
  8754. to convert View files, Robert Leon noted that the left margin default
  8755. (in the Print File dialogue window) should be changed to 4, otherwise
  8756. the file is not printed properly.
  8757. 2.10
  8758. •   Using 1st Mail for multi-column printouts − David Scott − Text which
  8759. is to be printed in more than one column is first prepared with First
  8760. Word Plus and it is at this stage that preparations must be made for the
  8761. print format. The text format must suit the final required column width
  8762. otherwise First Mail will ignore the instructions to print out in multi
  8763. columns.
  8764. 2.10
  8765. An example will show how to lay out the text. Suppose that you require
  8766. two columns each 31 characters wide set side by side on a 65 character
  8767. wide sheet. This will be possible as it allows 3 characters for the
  8768. central white column since
  8769. 2.10
  8770.  31 + 3 + 31 = 65
  8771. 2.10
  8772. The text must be prepared using a line length of 31 characters. The page
  8773. markings in First Word Plus will show final page 1 column 1 as page 1,
  8774. final page 1 column 2 as page 2, final page 2 column 1 as page 3 and so
  8775. on.
  8776. 2.10
  8777. When the text has been fully prepared enter First Mail and follow the
  8778. instructions given on pages 196 and 197 of the manual. The number of
  8779. columns must be set to 2 in this example.
  8780. 2.10
  8781. •   Another possible bug in First Mail − David Leckie − When using First
  8782. Word Plus with the ruler set to double line spacing, continuous text,
  8783. i.e. no returns are double spaced but text followed with a return is not
  8784. double spaced as you would expect.
  8785. 2.10
  8786. However when a First Mail mail-merge is done from the file, the mrg file
  8787. contains double spaced text where there was single spaced text in the
  8788. original doc. Thus if you want, say, your address lines to be double
  8789. spaced then they should be a RETURN between each line in the doc file
  8790. only if you are not going to do a First Mail mail merge. If you are
  8791. doing a mail merge then they should be single spaced i.e. no RETURNS
  8792. because after the mail merge double line spacing will be inserted! Very
  8793. funny!
  8794. 2.10
  8795. •   “Memalloc” module − John Fidler was playing with the !Lander program
  8796. in RISC-OS when he realised that it should not have run with the
  8797. configuration settings on his machine. He looked in the !Lander
  8798. directory (by clicking on the icon in the directory viewer while holding
  8799. the <shift> key) and found the Memalloc module.
  8800. 2.10
  8801. This module provides nine new star commands, which allow you to check
  8802. and alter the size of various memory pools i.e. system heap, RMA, screen
  8803. area, sprite area and font cache.
  8804. 2.10
  8805. ==> Help on keyword MemAlloc
  8806. 2.10
  8807. Module is: MemAlloc util 0.11 (06 Dec 1988)
  8808. 2.10
  8809. Commands provided:
  8810. 2.10
  8811. SystemSize RMASize ScreenSize SpriteSize FontSize
  8812. 2.10
  8813. RAMFSSize RMAFree SpriteFree FontFree
  8814. 2.10
  8815. •   Desktop ScreenSize configuration − When using the desktop, the
  8816. memory allocated to the screen area is regulated by the desktop screen
  8817. mode and not the configuration setting e.g. if you are in mode 12 then
  8818. the screen area will have 80k allocated to it (or 96k for the 400
  8819. series).
  8820. 2.10
  8821. •   Desktop startup commands − When starting the desktop using *Desktop,
  8822. you can make the Archimedes run a file or perform a star command. This
  8823. facility could be used to start the desktop up in a predefined state.
  8824. 2.10
  8825. ==> Help on keyword Desktop
  8826. 2.10
  8827. *Desktop starts up any dormant Wimp modules, and also passes an optional
  8828. 2.10
  8829. *command or file of *commands to Wimp_StartTask.
  8830. 2.10
  8831. Syntax: *Desktop [<*command> | -File <filename>]
  8832. 2.10
  8833. •   Converting ArcTerm 6.01 to RISC-OS − Arc-Term 6.01 will work under
  8834. RISC-OS if you make a !Run file in the !ArcTerm application directory:
  8835. 2.10
  8836. RMEnsure InternationalKeyboard 0.17
  8837. 2.10
  8838. RMReInit InternationalKeyboard
  8839. 2.10
  8840. DIR <Obey$Dir>.!ArcTerm
  8841. 2.10
  8842. Run ArcTerm
  8843. 2.10
  8844. •   Extra Options for the Copy Command − The new User Guide (page 208)
  8845. lists a number of new options for the Copy command which considerably
  8846. extend its usefulness. The L and N options are par-ticularly useful for
  8847. performing backups from hard disc to floppy disc. Thus the command:
  8848. 2.10
  8849.  *Copy HD::$.A.* FL::$.* ~CFQR
  8850. 2.10
  8851. will make a quick backup, without confirmation, of all the files and
  8852. subdirectories in directory A of the hard disc named HD onto the floppy
  8853. disc named FL. If however the option N is also added then only the files
  8854. which have changed since the last backup will be copied, thus reducing
  8855. the backup time consider-ably. If the L option is also added then even
  8856. more time is saved as the directories of both source and destination
  8857. disks are checked before any attempt is made to load the files
  8858. themselves.
  8859. 2.10
  8860. If suitable Copy commands are added to the end of an application !Run
  8861. file then an automatic backup of changed files can be made when you have
  8862. finished using the application. In this case it is vital to quote the
  8863. name of the required backup floppy disc so that a request to load it can
  8864. be given if it is not already in the drive.
  8865. 2.10
  8866. •   RISC-OS RS423 − Richard House says that using RISC-OS he can now
  8867. communicate with his BBC Model B at 19200 baud, without any errors
  8868. (whereas under Arthur 1.2, even with the patch, he was limited to 9600
  8869. baud).
  8870. 2.10
  8871. •   Diagram II using RAMdisc − Load the file “Setup” and change the “8”
  8872. in lines 10045, 10750, 10765, 10805 and 11325 to “23”. This will cause
  8873. it to access the ram-disk (assuming you copied Diagram II over to the
  8874. ram-disk) thereby running much faster during scrolling and saving wear
  8875. and tear on your floppy or hard disk. (J.Daniels of Pineapple Software)
  8876. 2.10
  8877. •   MIDI !Maestro − One reader says that there is an undocumented
  8878. facility in the !Maestro application which can play a MIDI instrument if
  8879. the MIDI podule is fitted.
  8880. 2.10
  8881. •   Typing control characters − If you wish to use a “non-keyboard”
  8882. character under RISC-OS, just hold down the <ALT> key and type in the
  8883. character number on the keypad.
  8884. 2.10
  8885. •   RMReInit SpriteUtils − Many applications unplug modules and
  8886. reinitialise them later. Often, under RISC-OS, the SpriteUtils module
  8887. does not get reinitialised. If you have any problems loading sprites or
  8888. get the “SWI not known” error, you can check whether your modules have
  8889. been reinitialised properly by typing *ROMModules.
  8890. 2.10
  8891. One reader says that ‘Pacmania’ can be cured of this by adding the
  8892. following line to the !BOOT file:
  8893. 2.10
  8894. 935 *RMReInit SpriteUtils
  8895. 2.10
  8896. •   Multi-Tasking − How many tasks can RISC-OS run simultaneously? The
  8897. manual doesn’t say, so I decided to find out by loading multiple copies
  8898. of the desktop clock. When I tried to load the 29th clock I got an error
  8899. message “Too many tasks”, making the upper limit 28.
  8900. 2.10
  8901. •   Leaving the Desktop from a Command File − David Scott − The answer
  8902. to my own previous help query is actually quite simple when you know
  8903. how! The last command in the file, which must be an obey file, (it does
  8904. not work with an exec file) must be:
  8905. 2.10
  8906. *fx138,0,252
  8907. 2.10
  8908. which simulates pressing <control-shift-f12>.
  8909. 2.10
  8910. •   Space for large applications − The methods used by Acorn and other
  8911. suppliers of application software to load their applications which
  8912. require a lot of space, seem to be both devious and, in many cases,
  8913. ineffective since they result in less space being available for the
  8914. application than under Arthur 1.2.
  8915. 2.10
  8916. The method illustrated below allows over 300k of data space in Logistix
  8917. or over 600k of memory with the PC Emulator on a 1Mbyte machine. The
  8918. technique is a three stage process and is illustrated for Logistix.
  8919. 2.10
  8920. Note that the machine will have to be reset after using the application
  8921. in order to restore all the normal modules and their facilities.
  8922. 2.10
  8923. Note also that the amount of free space will vary depending on the
  8924. configuration settings. In my case, these are 80k for the screen (Mode
  8925. 12) and 0K for System sprites, font cache and RAM FS.
  8926. 2.10
  8927. If you use Econet then the modules NetFS, NetPrint, BBCEconet, NetFiler
  8928. and NetStatus should also be killed in Stage 2. If you do not use Econet
  8929. then you will gain marginally more space for all applications by
  8930. *Unplugging these modules as I have done.
  8931. 2.10
  8932. Stage 1 − Set up the standard !Run file for the application so that it
  8933. sets a function key to execute the stage 2 file after quitting the
  8934. desktop.
  8935. 2.10
  8936. | >$.!Logistix.!Run
  8937. 2.10
  8938. IconSprites <Obey$Dir>.!Sprites
  8939. 2.10
  8940. Key1 Quit|MDir $|MExec $.!Logistix.Lgx1|M
  8941. 2.10
  8942. Fx138,0,252
  8943. 2.10
  8944. Fx138,0,129
  8945. 2.10
  8946. Stage 2 − This file must be an command file (not Obey). It clears the
  8947. temporary modules and then kills all the unwanted modules. A function
  8948. key is then set up to execute Stage 3 and the file ends by recovering
  8949. the freed space using the RMTidy com-mand which must be the last command
  8950. in the file.
  8951. 2.10
  8952. | >$.!Logistix.Lgx1
  8953. 2.10
  8954. RMClear
  8955. 2.10
  8956. RMKill Debugger
  8957. 2.10
  8958. RMKill Desktop
  8959. 2.10
  8960. RMKill WindowManager
  8961. 2.10
  8962. RMKill FontManager
  8963. 2.10
  8964. RMKill InternationalKeyboard
  8965. 2.10
  8966. RMKill SoundScheduler
  8967. 2.10
  8968. RMKill StringLib
  8969. 2.10
  8970. RMKill Percussion
  8971. 2.10
  8972. RMKill SpriteExtend
  8973. 2.10
  8974. RMKill Draw
  8975. 2.10
  8976. RMKill Hourglass
  8977. 2.10
  8978. RMKill Podule
  8979. 2.10
  8980. Key 1 *Obey $.!Logistix.Lgx2|M
  8981. 2.10
  8982. FX138 0 129
  8983. 2.10
  8984. RMTidy
  8985. 2.10
  8986. Stage 3 − This Obey file sets the current directory (it was cleared by
  8987. the radical effects of RMtidy) and then loads the Floating point
  8988. emulator and Logistix directly. The final line is an optional backup
  8989. command which automatically backs the new and changed data files up to a
  8990. floppy disc (named S1 in this case).
  8991. 2.10
  8992. | >$.!Logistix.Lgx2
  8993. 2.10
  8994. Dir $.!Logistix
  8995. 2.10
  8996. RMLoad $.!System.Modules.
  8997. 2.10
  8998. FPEmulator
  8999. 2.10
  9000. Lgx
  9001. 2.10
  9002. COPY :DJS.!Logistix.Sheet.* :S1.*
  9003. 2.10
  9004.  ~CFLNQ
  9005. 2.10
  9006. PC Emulator − The method is similar for stages 1 and 2 except the
  9007. following additional modules can be killed in stage 2: SystemDevices,
  9008. TaskManager, PaletteUtil, Filer, ADFSFiler, RAMFSFiler, ShellCLI and
  9009. RamFS. Stage 3 is not required as the line which sets the function key
  9010. termination command is:
  9011. 2.10
  9012. Key 1 PC.Emulate|M
  9013. 2.10
  9014. which enters the PC Emulator directly. Note that the PC directory must
  9015. be in the root and must be called PC otherwise the Emulator fails during
  9016. loading.
  9017. 2.10
  9018. •   Getting First Word Plus started − further to the comments on page
  9019. 20/21, last month, it is not a good idea to use *MOUNT as First Word
  9020. Plus will then not allow you to change discs, *DRIVE should be used and
  9021. this works fine. My machine is configured to boot with the external
  9022. drive selected, which usually holds a “library disc”, which is how I
  9023. discovered the problem. First Word Plus now boots happily under RISC-OS,
  9024. including an amended version of the key press module which traps <ctrl-
  9025. f12> to provide a command line similar to that on the desk top − i.e.
  9026. scrolling up from the bottom of the screen. (We’ll try to get hold of
  9027. this for the monthly disc. Ed.)
  9028. 2.10
  9029. •   First Word Plus from the RISC-OS desktop − create the following run
  9030. file:
  9031. 2.10
  9032. !Run
  9033. 2.10
  9034. | !Run for !First Word Plus+ version 0.01
  9035. 2.10
  9036. IconSprites <Obey$Dir>.!Sprites
  9037. 2.10
  9038. WimpSlot -min 400k
  9039. 2.10
  9040. set FirstWordPlus$Resources $.Resources.1wp.
  9041. 2.10
  9042. set FirstWordPlus$Docs &.1wp.
  9043. 2.10
  9044. echo<5><23><17><7><6><8><0><8><0>
  9045. 2.10
  9046. <0><0><0><0>
  9047. 2.10
  9048. run “<FirstWordPlus$Resources>1wp”
  9049. 2.10
  9050. •   First Mail under RISC-OS − David Leckie − While First Word Plus has
  9051. drawn a lot of comment, very little mention has been made First Mail,
  9052. the mail merge program that accompanies it.
  9053. 2.10
  9054. When run under RISC-OS the main window will not resize. Now this may not
  9055. seem like much of a problem but the trouble is that the printer window
  9056. is hidden under the main window and cannot be easily accessed.
  9057. 2.10
  9058. Fortunately the corners of the window are just visible and can be
  9059. clicked on. The printer driver window pops up when clicked on ok, but
  9060. while the destination printer window can be clicked on, the name of the
  9061. selected destination printer is still hidden. This problem is compounded
  9062. by the last line of the 1st paragraph on page 154 of the manual being
  9063. wrong. “The four options Parallel Port, Serial Port, Network Port and
  9064. Disc will appear in rotation.
  9065. 2.10
  9066. They do not rotate in the order above. Parallel Port is the first and
  9067. Disk is the third not fourth but which is network and serial? Can
  9068. someone with Arthur please tell us?
  9069. 2.10
  9070. Thus, if you want to do a merge to parallel printer it works fine. For
  9071. disc, point to the corner of the window and give 2 clicks (not 3). If
  9072. you need serial or network, try 1 or 3 clicks.
  9073. 2.10
  9074. Thanks to Mark Burch who helped to crack the problem.
  9075. 2.10
  9076. •   Installing Artisan − Sean Kelly − There are three tips: the first is
  9077. on getting Artisan to return control to the desktop without resetting
  9078. the system; the second is on putting Artisan in any chosen directory;
  9079. the third is not strictly related to RISC-OS, but is on persuading
  9080. Artisan to work with compressed screens.
  9081. 2.10
  9082. Returning to the desktop − When Artisan is installed as described on the
  9083. RISC-OS support disc, it does not return correctly to the desktop. The
  9084. following modification was made to the program on my A440, and works
  9085. perfectly:
  9086. 2.10
  9087. 1. Load program ART5 and, using the BASIC EDITOR, find the line: “DEF
  9088. PROCLAR”
  9089. 2.10
  9090. 2. The next line should be a multi-statement line containing in-line
  9091. assembly code. If so, you have found the correct routine. Delete
  9092. everything on this line except for the first three statements and then
  9093. add “:QUIT” so that the new line reads:
  9094. 2.10
  9095. MODE12:OSCLI“FX4”:OSCLI“UP”:QUIT
  9096. 2.10
  9097. 3. Rename the old ART5 (in case you have made a mistake) and save the
  9098. new version as ART5.
  9099. 2.10
  9100. This new version returns to the desktop, in the same condition as when
  9101. Artisan was called, when you quit Artisan.
  9102. 2.10
  9103. Altering the directory structure − When installed using the hard disc
  9104. install program, Artisan insists on living in a directory called
  9105. :4.$.Artisan. This can be changed − the following details relate to my
  9106. chosen directory of :4.$.APPS.!ARTISAN.
  9107. 2.10
  9108. 1. !RUN should be altered from the support disc version. The new version
  9109. is:
  9110. 2.10
  9111. ECHO <22><&8C>
  9112. 2.10
  9113. WIMPSLOT -MIN 200k
  9114. 2.10
  9115. DIR :4.$.APPS.!ARTISAN *** put your own directory here ***
  9116. 2.10
  9117. URD @ BASIC ART4
  9118. 2.10
  9119. In my case, the pathname of !RUN is “:4.$.APPS. !ARTISAN.!RUN”. Before
  9120. changing !RUN, re-name the old one in case of accident.
  9121. 2.10
  9122. 2. Alter ART5 using the Basic Editor. Several lines need changing; in
  9123. each case the change consists of altering the given directory to point
  9124. to your new directory. The lines that need altering can be found by
  9125. searching for the following strings using the editor (they are all
  9126. unambiguous, but the case of each letter is crucial):
  9127. 2.10
  9128. cLare%=FALSE:
  9129. 2.10
  9130. A%=cLARESMI
  9131. 2.10
  9132. WHEN12:OSCLI
  9133. 2.10
  9134. WHEN1:OSCLI“LOAD
  9135. 2.10
  9136. OSCLI“CDIR
  9137. 2.10
  9138. OSCLI“DIR ”+ClA$+
  9139. 2.10
  9140. Preserve the old ART5 in case of problems.
  9141. 2.10
  9142. •   Adapting Artisan for Compressed Screens − I use a modified version
  9143. of the screen compression routine originally published in Personal
  9144. Computer World magazine. It uses the commands *CSCREENLOAD and
  9145. *CSCREENSAVE to load and save compressed screens, and compressed screens
  9146. are given the filetype &010. The adaptation below will work equally well
  9147. with other com-pression routines with the proviso that the compressed
  9148. screen loading routine must recog-nize and correctly deal with normally
  9149. saved screens (filetype &FF9).
  9150. 2.10
  9151. 1. Load ART5 and modify it using the BASIC Editor (first rename ART5, in
  9152. case of errors). Immediately after the REM statements at the start of
  9153. the program, add these two lines (substituting your own compressed
  9154. screen save and load commands):
  9155. 2.10
  9156. *SET Alias$SCREENSAVE CSCREENSAVE %0
  9157. 2.10
  9158. *SET Alias$SCREENLOAD CSCREENLOAD %0
  9159. 2.10
  9160. Substitute the names of your own commands for CSCREENSAVE and
  9161. CSCREENLOAD.
  9162. 2.10
  9163. 2. Find DEFPROCcLaRESM with the editor. Look about 14 lines down and
  9164. there will be a line beginning with WHEN&FF9. Four lines further down
  9165. should be a line beginning with ENDIF. Add two new lines after this
  9166. ENDIF line (substituting your own compressed screen filetype):
  9167. 2.10
  9168. WHEN &010
  9169. 2.10
  9170. RES%=3:mIC%=ReSM%:ReSM%+=1:cLarESM%=7
  9171. 2.10
  9172. 3. Find DEFPROCPS with the editor. Look about seventeen lines down and
  9173. there will be a line beginning with WHEN&FF9. Six lines further down
  9174. should be a line beginning with ENDIF. Add two new lines after this
  9175. ENDIF line (substituting your own compressed screen filetype):
  9176. 2.10
  9177. WHEN &010
  9178. 2.10
  9179. PROCGw(laRES%): clArES%=4
  9180. 2.10
  9181. The modified version of ART5 will correctly handle compressed and
  9182. uncompressed screens for loading, and will normally save screens in
  9183. compressed form.
  9184. 2.10
  9185. •   RISC-OS Postscript Printer Drivers − One of our readers can only use
  9186. a laser printer from an Apple Mac, but wanted to obtain good quality
  9187. images of the documents that he produced in !Draw and !Edit. In order to
  9188. do this he redirected the output of the !PrinterPS to a file and
  9189. ‘ported’ the file across to the Mac. The reason why this works is
  9190. because the output of !PrinterPS application is straight ASCII Post
  9191. script text, so in theory, the resulting file could be used by any
  9192. Postscript set up.
  9193. 2.10
  9194. •   Configuring !PrinterDM − some readers have had problems outputting
  9195. to their dot matrix printers. This might be because the !PrinterDM
  9196. application must be configured for the printer you are using. This can
  9197. be done by clicking, with <select>, on the printer icon (once installed)
  9198. and then clicking on the printer name that appears in a window, until
  9199. the name of your printer appears. Then select the “Save Choice” option
  9200. on the !PrinterDM menu. The printers that !PrinterDM supports are: Epson
  9201. FX, LQ, and LQ-850 compatibles and the NEC Pin-Writer P6 plus.
  9202. 2.10
  9203. •   RISC-OS multisync text scaling solution! − Richard Averill − If you
  9204. turn back to Archive 2.9 p14, you will see the problem of text scaling
  9205. in multisync modes raised. Having also experienced this problem, I tried
  9206. to solve it.
  9207. 2.10
  9208. Firstly, I tried using the output to sprites feature to modify this.
  9209. Since this did not alter the size of the font at all, I then tried a
  9210. more interesting method. I knew that the standard vdu 5 font size was
  9211. 8x8 pixels, so I ran the following program to tell me which locations in
  9212. the operating system’s workspace (&0000-&7FFF) contained the value 8.
  9213. 2.10
  9214. 10 REM > $.TextSize.Find8
  9215. 2.10
  9216. 20 REM (C) Richard Averill, 1989.
  9217. 2.10
  9218. 30 FOR I%=0 TO &7FFC STEP 4
  9219. 2.10
  9220. 40 IF !I%=8 THEN PRINT ~I%;
  9221. 2.10
  9222. 50 NEXT
  9223. 2.10
  9224. I then had a list of locations, so I set vdu 5 mode and *Memory’ed each
  9225. of the locations to have a closer look. Storing 16 in the second
  9226. location (&1360) caused the x text size to be doubled! There were 3 more
  9227. 8‘s consecutively after this value, so after a little testing I came to
  9228. the conclusion shown by the following table:
  9229. 2.10
  9230. Address   Contents
  9231. 2.10
  9232. &1360   x size
  9233. 2.10
  9234. &1364   y size
  9235. 2.10
  9236. &1368   x spacing
  9237. 2.10
  9238. &136C   y spacing
  9239. 2.10
  9240. All values are given in pixels, so by default these are 8,8,8,8. The
  9241. WIMP manager changes the x and y values according to the x and y ‘eig’
  9242. factors read by swi OS_ReadModeVariable detailed in OS1.2 PRM pages
  9243. 124−126. Note that the values need not be multiples of 8, but the
  9244. characters will look rather odd otherwise!
  9245. 2.10
  9246. The following procedure will enable you to set the text size and
  9247. spacing. The syntax is PROCtextsize(x size, y size, x spacing, y
  9248. spacing).
  9249. 2.10
  9250. 10000 DEF PROCtextsize(x%,y%,sx%
  9251. 2.10
  9252. ,sy%)
  9253. 2.10
  9254. 10010 !&1360=x%
  9255. 2.10
  9256. 10020 !&1364=y%
  9257. 2.10
  9258. 10030 !&1368=sx%
  9259. 2.10
  9260. 10040 !&136C=sy%
  9261. 2.10
  9262. 10050 ENDPROC
  9263. 2.10
  9264. For example, PROCtextsize(16,8,16,8) will give you double width text
  9265. when in VDU 5 mode. This will be square in mode 12 etc. and of a
  9266. rectangular shape in mode 20 etc. The text spacing will usually be the
  9267. same as the text size.
  9268. 2.10
  9269. To set the default text size from the RISC-OS desktop (the answer to the
  9270. query,) run the following program (which is in the “$.TextSize”
  9271. directory of the monthly disc) from within the desktop, and it will
  9272. redraw the whole screen to enable the new size to take effect.
  9273. 2.10
  9274.  10 REM > $.TextSize.SetSize
  9275. 2.10
  9276.  20 REM (C) Richard Averill, 1989.
  9277. 2.10
  9278.  30 REM restores default text size and spacing in the RISC-OS desktop.
  9279. 2.10
  9280.  40
  9281. 2.10
  9282.  50 !&1360=8
  9283. 2.10
  9284.  60 !&1364=8
  9285. 2.10
  9286.  70 !&1368=8
  9287. 2.10
  9288.  80 !&136C=8
  9289. 2.10
  9290.  90 SYS “Wimp_Initialise”,200,
  9291. 2.10
  9292. &4B534154 TO task%
  9293. 2.10
  9294. 100 SYS “Wimp_ForceRedraw”,-1,0,0,
  9295. 2.10
  9296. &FFFF,&FFFF
  9297. 2.10
  9298. 110 SYS “Wimp_CloseDown”,task%,
  9299. 2.10
  9300. &4B534154
  9301. 2.10
  9302. 120 QUIT
  9303. 2.10
  9304. This will set the text size to 8 pixels, the same as under the Arthur
  9305. WIMP manager. So if you have a high resolution monochrome, the text will
  9306. become four times smaller in each direction than normal!
  9307. 2.10
  9308. Unfortunately, there is a slight problem. The RISC-OS WIMP assumes
  9309. scaling will be done to ensure that the size of the text is always 16x32
  9310. OS units and uses these values when calculating text widths/heights
  9311. instead of finding the sizes from the operating system. So any verti
  9312. cally centred text (such as window titles) will not be centred properly
  9313. in multisync modes!
  9314. 2.10
  9315. For real compatibility with Arthur 1.2 WIMP applications, you can save
  9316. the Arthur 1.2 WindowManager module from ROM to disc and *RMLoad this
  9317. into RISC-OS instead. The Arthur 1.2 WIMP module is in the “$.TextSize”
  9318. directory of this month’s programs disc.
  9319. 2.10
  9320.  
  9321.  
  9322.  
  9323. •   Limited ADFS memory (RISC-OS/Arthur 1.2) − One reader has written in
  9324. saying that his Archimedes will only *MOUNT six discs. On the seventh,
  9325. the drive spins continuously until the disc is removed. This happens
  9326. because the ADFS only has a limited amount of memory to store the
  9327. directory information. The amount of memory allocated for this can
  9328. controlled by using *Configure ADFSDirCache.
  9329. ==> Help on keyword ADFSDirCache
  9330. *Configure ADFSDirCache sets the size of the directory cache (in Kbytes)
  9331. used by the ADFS. A value of 0 selects a default value which depends on
  9332. RAM size.
  9333. Syntax: *Configure ADFSDirCache <size>[K]
  9334. You can also make the Archimedes forget that it has seen the disc by
  9335. using *DISMOUNT.
  9336. 2.11
  9337. ==> Help on keyword Dismount
  9338. 2.11
  9339. *Dismount closes files, unsets directories and parks the given disc.
  9340. 2.11
  9341. Syntax: *Dismount [<disc spec.>]
  9342. 2.11
  9343. •   Three floppies for Arthur 1.2 desktop − In Archive 2.8, pages 11/12,
  9344. there is a hint which allows you to access three drives from the
  9345. desktop. However, the hint states that you must start the desktop up by
  9346. typing */Desktop instead of *Desktop. One reader says that you could of
  9347. course set up *Set Alias$Desktop Run Desktop which would then allow you
  9348. to start up using *Desktop.
  9349. 2.11
  9350. •   In First Word Plus, when printing after opening more than one file,
  9351. the first file you opened will be offered for printing, not the last one
  9352. you closed!
  9353. 2.11
  9354. •   Configuring your printer under the PC Emulator − In reply to Chris
  9355. Walker’s question, you must use the following reserved words when
  9356. configuring your printer:
  9357. 2.11
  9358. For serial printers use: AUX or COM1, COM2, COM3É
  9359. 2.11
  9360. For parallel printers use: PRN or LPT1, LPT2É
  9361. 2.11
  9362. •   Sprite Plot comments from Martin Simmons − The article on sprite
  9363. plotting was interesting since it is always good to see how other
  9364. programmers solve problems. However, the routines are far from being the
  9365. fastest possible, a major inefficiency being that the screen pointer is
  9366. updated after every pixel is plotted. This could be rectified by
  9367. deleting 2410, 2460, 2510, 2580 and changing the following:
  9368. 2.11
  9369. 2010 PROCplot_4_pixels(4*
  9370. 2.11
  9371. (gjenta-1))
  9372. 2.11
  9373. 2050 ADD screen_pointerR,
  9374. 2.11
  9375. screen_pointerR,#320
  9376. 2.11
  9377. 2110 DEF PROCplot_4_pixels(index)
  9378. 2.11
  9379. 2400 STRNEB data5R,
  9380. 2.11
  9381. [screen_pointerR,#index+0]
  9382. 2.11
  9383. 2450 STRNEB data5R,
  9384. 2.11
  9385. [screen_pointerR,#index+1]
  9386. 2.11
  9387. 2500 STRNEB data5R,
  9388. 2.11
  9389. [screen_pointerR,#index+2]
  9390. 2.11
  9391. 2570 STRNEB data5R,
  9392. 2.11
  9393. [screen_pointerR,#index+3]
  9394. 2.11
  9395. Now the pointer is only changed at the end of each line. This improves
  9396. performance over the published routine by about 10% for a 24x24 pixel
  9397. sprite with no black pixels.
  9398. 2.11
  9399. It would be quicker to use word stores instead of byte stores but this
  9400. would complicate the routine and may even slow it down overall.
  9401. 2.11
  9402. •   D.I.Y. A3000 serial interface − Mike Harrison (Archive 2.10 p 56)
  9403. didn’t know what the chip numbers were for the A3000 serial interface
  9404. kit. You need a 6551 (which ought to be one of the ones manufactured by
  9405. CMD) and an LT1133.
  9406. 2.11
  9407. •   Evaluation of Algebraic Expressions (E.D. Engelhardt) − Anyone who
  9408. is interested in the evaluation of valid algebraic expressions could try
  9409. to use PROCexpression in program Evalexpr as given below. The procedure
  9410. mentioned has been written using suggestions of Mr de Heus, ECD, Delft,
  9411. Holland.
  9412. 2.11
  9413. Variable names in an expression are single, lower-case characters
  9414. ranging from ‘a’ to ‘z’. These names are stored in ‘var$’. Each
  9415. character in the input expression ‘ex$’ is matched with its presence in
  9416. ‘var$’. If so, its position in ‘var$’ is detected and it is replaced by
  9417. the (arbitrary) character ‘$’. The position is used to assign an
  9418. appropriate value to the actual variable by means of array ‘var()’. The
  9419. value of the expression is obtained using the EVAL function.
  9420. 2.11
  9421. The reason EVAL(ex$) is preceded by EVAL (“FALSE”) in PROCevalexpression
  9422. is as follows: If one enters an expression containing no variables but
  9423. numbers only, and the expression cannot be evaluated (e.g. LN0 or 3/0)
  9424. an error message appears on the screen. Thereafter, entering the same
  9425. type of expression, again not containing variables (e.g. LN9 after LN0
  9426. or 6/5 after 3/0), results in the same error message. To prevent this
  9427. from happening the instruction EVAL(“<>”) is included. I discovered this
  9428. ‘feature’ by accident and found the solution by trial and error. I would
  9429. appreciate any comments from interested readers.
  9430. 2.11
  9431.  10 REM >Evalexpr
  9432. 2.11
  9433.  20 :
  9434. 2.11
  9435.  30 WHILE TRUE
  9436. 2.11
  9437.  40   PROCevalexpression
  9438. 2.11
  9439.  50 ENDWHILE
  9440. 2.11
  9441.  60 END
  9442. 2.11
  9443.  70 :
  9444. 2.11
  9445.  80:
  9446. 2.11
  9447.  90 DEFPROCevalexpression
  9448. 2.11
  9449. 100 k$=“ Press any key to continue !”
  9450. 2.11
  9451. 110 LOCAL ERROR
  9452. 2.11
  9453. 120 ON ERROR LOCAL IF ERR=17 THEN
  9454. 2.11
  9455.  PRINT‘’“ *** Escaped program !”‘
  9456. 2.11
  9457. :END ELSE PRINT‘“ ”;REPORT$’‘k$;:
  9458. 2.11
  9459. dummy=GET:ENDPROC
  9460. 2.11
  9461. 130 :
  9462. 2.11
  9463. 140 PROCinput
  9464. 2.11
  9465. 150 :
  9466. 2.11
  9467. 160 PROCexpression
  9468. 2.11
  9469. 170 exval=EVAL(“FALSE”)  :REM
  9470. 2.11
  9471. *** To prevent error message
  9472. 2.11
  9473.  after evaluation of a wrong
  9474. 2.11
  9475.  expression, e.g. LN0. Try to                                   REM this
  9476. line !
  9477. 2.11
  9478. 180 exval=EVAL(ex$)
  9479. 2.11
  9480. 190 :
  9481. 2.11
  9482. 200 PROCoutput
  9483. 2.11
  9484. 210 ENDPROC
  9485. 2.11
  9486. 220 :
  9487. 2.11
  9488. 230 DEFPROCinput
  9489. 2.11
  9490. 240 CLS:PRINT‘“ Choice of variables
  9491. 2.11
  9492.  from a to z.“‘
  9493. 2.11
  9494. 250 LINE INPUT“ Give expression : ”
  9495. 2.11
  9496. ex$
  9497. 2.11
  9498. 260 ENDPROC
  9499. 2.11
  9500. 270 :
  9501. 2.11
  9502. 280 DEFPROCoutput
  9503. 2.11
  9504. 290 PRINT‘“ Function value of ”;ex$
  9505. 2.11
  9506. ;“ = ”;exval
  9507. 2.11
  9508. 300 PRINT’k$;:dummy=GET
  9509. 2.11
  9510. 310 ENDPROC
  9511. 2.11
  9512. 320 :
  9513. 2.11
  9514. 330 DEFPROCexpression
  9515. 2.11
  9516. 340 LOCAL var$,var(),t%,i%
  9517. 2.11
  9518. 350 var$=“abcdefghijklmnopqrstuvw
  9519. 2.11
  9520. xyz“
  9521. 2.11
  9522. 360 DIM var(LEN(var$))
  9523. 2.11
  9524. 370 :
  9525. 2.11
  9526. 380 FOR t%=1 TO LEN(ex$)
  9527. 2.11
  9528. 390   i%=INSTR(var$,MID$(ex$,t%,1))
  9529. 2.11
  9530. 400   IF i%>0 THEN
  9531. 2.11
  9532. 410     var$=LEFT$(var$,i%-1)+“$”
  9533. 2.11
  9534. +MID$(var$,i%+1)
  9535. 2.11
  9536. 420     PRINT‘“ Value of  ”;
  9537. 2.11
  9538. MID$(ex$,t%,1);“     : ”;
  9539. 2.11
  9540. 430     INPUT“”var(i%)
  9541. 2.11
  9542. 440     :
  9543. 2.11
  9544. 450     CASE i% OF
  9545. 2.11
  9546. 460       WHEN  1:a=var(i%)
  9547. 2.11
  9548. 470       WHEN  2:b=var(i%)
  9549. 2.11
  9550. 480       WHEN  3:c=var(i%)
  9551. 2.11
  9552. 490       WHEN  4:d=var(i%)
  9553. 2.11
  9554. 500       WHEN  5:e=var(i%)
  9555. 2.11
  9556. 510       WHEN  6:f=var(i%)
  9557. 2.11
  9558. 520       WHEN  7:g=var(i%)
  9559. 2.11
  9560. 530       WHEN  8:h=var(i%)
  9561. 2.11
  9562. 540       WHEN  9:i=var(i%)
  9563. 2.11
  9564. 550       WHEN 10:j=var(i%)
  9565. 2.11
  9566. 560       WHEN 11:k=var(i%)
  9567. 2.11
  9568. 570       WHEN 12:l=var(i%)
  9569. 2.11
  9570. 580       WHEN 13:m=var(i%)
  9571. 2.11
  9572. 590       WHEN 14:n=var(i%)
  9573. 2.11
  9574. 600       WHEN 15:o=var(i%)
  9575. 2.11
  9576. 610       WHEN 16:p=var(i%)
  9577. 2.11
  9578. 620       WHEN 17:q=var(i%)
  9579. 2.11
  9580. 630       WHEN 18:r=var(i%)
  9581. 2.11
  9582. 640       WHEN 19:s=var(i%)
  9583. 2.11
  9584. 650       WHEN 20:t=var(i%)
  9585. 2.11
  9586. 660       WHEN 21:u=var(i%)
  9587. 2.11
  9588. 670       WHEN 22:v=var(i%)
  9589. 2.11
  9590. 680       WHEN 23:w=var(i%)
  9591. 2.11
  9592. 690       WHEN 24:x=var(i%)
  9593. 2.11
  9594. 700       WHEN 25:y=var(i%)
  9595. 2.11
  9596. 710       WHEN 26:z=var(i%)
  9597. 2.11
  9598. 720     ENDCASE
  9599. 2.11
  9600. 730   ENDIF
  9601. 2.11
  9602. 740 NEXT
  9603. 2.11
  9604. 750 :
  9605. 2.11
  9606. 760 ENDPROC
  9607. 2.11
  9608.  
  9609. 2.11
  9610. •   First Word Plus − I am sure that all users of First Word Plus have
  9611. found it considerably enhanced by the use of Steve Hoare’s Interrupt
  9612. Module (available on Shareware N¼6). The main use for this is in
  9613. mounting new discs, formatting and creating directories. I have recently
  9614. discovered that it can also be used for *EXECing files into the word
  9615. processor. This can be very useful because First Word Plus treats the
  9616. standard ASCII space character as a ‘hard’ space. This means that if
  9617. straight ASCII text is read into First Word Plus in the regular way it
  9618. can not be formatted because each line is treated as an entire word. By
  9619. using the interrupt module and *EXECing the file it is as if it were
  9620. being typed in from the keyboard. Spaces between words are thus
  9621. translated into ‘soft’ spaces so that the resulting document can be
  9622. formatted in the usual way. Brian Cowan
  9623. 2.11
  9624. •   Greek characters − (Gerald Fitton) For some time now I have been
  9625. considering converting all my old Wordwise files to PipeDream files. 
  9626. The thing that has been putting me off is that, since I teach (amongst
  9627. other things) maths and statistics, I need to be able to print Greek
  9628. letters such as CDSYabc defghijklmnopqrstuvwxy. It is relatively easy
  9629. from Wordwise to define a new character on the Epson FX printer, but not
  9630. so easy to include it in PipeDream’s Printer On string.  I have got
  9631. round this by running a BASIC program from within PipeDream’s !Run file
  9632. that sends the necessary codes for the Greek characters to the printer. 
  9633. You can then have What-You-See-Is-What-You-Get Greek characters on
  9634. screen by using the sequence <Alt>+E+C.  This is what you do:
  9635. 2.11
  9636. Modify the !Run file to include the command
  9637. 2.11
  9638. BASIC -quit “<PipeDream$Dir>.
  9639. 2.11
  9640. Printers.Greek“
  9641. 2.11
  9642. My !Run file now looks like the one below.
  9643. 2.11
  9644. | > !PipeDream.!Run
  9645. 2.11
  9646. Set PipeDream$Dir <Obey$Dir>
  9647. 2.11
  9648. WimpSlot -min 160k -max 640k
  9649. 2.11
  9650. RMReInit InternationalKeyboard
  9651. 2.11
  9652. RMKill InternationalKeyboard
  9653. 2.11
  9654. BASIC -quit “<PipeDream$Dir>.
  9655. 2.11
  9656. Printers.Greek“
  9657. 2.11
  9658. RMEnsure FPEmulator 2.60 RMLoad
  9659. 2.11
  9660.  <System$Path>Modules.FPEmulator
  9661. 2.11
  9662. Set Alias$@RunType_DDE Run
  9663. 2.11
  9664.  <PipeDream$Dir>.!Run %%*0
  9665. 2.11
  9666. Set File$Type_DDE PDream
  9667. 2.11
  9668. IconSprites <PipeDream$Dir>
  9669. 2.11
  9670. .!Sprites
  9671. 2.11
  9672. Load <Obey$Dir>.piped.pd 8000
  9673. 2.11
  9674. DIR <Obey$Dir>
  9675. 2.11
  9676. Echo <26>
  9677. 2.11
  9678. Pointer 0
  9679. 2.11
  9680. Go 8000 ; %*0
  9681. 2.11
  9682. DIR adfs::HardDisc4.$
  9683. 2.11
  9684. Include the new program ‘Greek’ in a suitable directory; I have chosen
  9685. the ‘Printers’ directory.
  9686. 2.11
  9687. 100 REM > <PipeDream$Dir>.
  9688. 2.11
  9689. Printers.Greek
  9690. 2.11
  9691. 150 :
  9692. 2.11
  9693. 160 *Alphabet Greek
  9694. 2.11
  9695. 180 VDU 2
  9696. 2.11
  9697. 200 RESTORE
  9698. 2.11
  9699. 210 REPEAT
  9700. 2.11
  9701. 220 READ byte%
  9702. 2.11
  9703. 230 IF byte%<>-1 THEN VDU 1,byte%
  9704. 2.11
  9705. 240 UNTIL byte%=-1
  9706. 2.11
  9707. 250 :
  9708. 2.11
  9709. 260 VDU 3
  9710. 2.11
  9711. 270 :
  9712. 2.11
  9713. 280 END
  9714. 2.11
  9715. 300 :
  9716. 2.11
  9717. 310 DATA 27,64
  9718. 2.11
  9719. 320 DATA 27,58,0,0,0
  9720. 2.11
  9721. 330 DATA 27,37,1,0
  9722. 2.11
  9723. 340 DATA 27,54
  9724. 2.11
  9725. 350 DATA 27,38,0,108,108
  9726. 2.11
  9727. 360 DATA 136,0,128,0,252,2,0,2,0,0,0,0
  9728. 2.11
  9729. 370 DATA 27,38,0,128,128
  9730. 2.11
  9731. 380 DATA 138,8,4,2,4,8,16,32,64,128
  9732. 2.11
  9733. ,0,0
  9734. 2.11
  9735. 390 DATA 27,38,0,176,176
  9736. 2.11
  9737. 400 DATA 168,0,0,64,160,0,160,64,0,0
  9738. 2.11
  9739. ,0,0
  9740. 2.11
  9741. 410 DATA 27,38,0,177,177
  9742. 2.11
  9743. 420 DATA 139,18,0,18,0,126,0,18,0,18
  9744. 2.11
  9745. ,0,0
  9746. 2.11
  9747. 430 DATA 27,38,0,195,196
  9748. 2.11
  9749. 440 DATA 137,130,124,130,0,128,0,128,
  9750. 2.11
  9751. 64,0,0,0
  9752. 2.11
  9753. 450 DATA 139,2,4,10,16,34,64,130,96,
  9754. 2.11
  9755. 26,4,2
  9756. 2.11
  9757. 460 DATA 27,38,0,211,211
  9758. 2.11
  9759. 470 DATA 139,130,0,198,0,170,0,146,0,
  9760. 2.11
  9761. 130,0,0
  9762. 2.11
  9763. 480 DATA 27,38,0,217,217
  9764. 2.11
  9765. 490 DATA 139,58,68,130,0,128,0,130,68
  9766. 2.11
  9767. ,58,0,0
  9768. 2.11
  9769. 500 DATA 27,38,0,225,249
  9770. 2.11
  9771. 510 DATA 138,28,34,0,34,20,8,20,32,2
  9772. 2.11
  9773. ,0,0
  9774. 2.11
  9775. 520 DATA 138,127,128,18,128,18,128,
  9776. 2.11
  9777. 114,12,0,0,0
  9778. 2.11
  9779. 530 DATA 11,64,0,64,32,16,11,4,8,16
  9780. 2.11
  9781. ,96,0
  9782. 2.11
  9783. 540 DATA 138,12,18,64,178,0,146,0,
  9784. 2.11
  9785. 146,76,0,0
  9786. 2.11
  9787. 550 DATA 137,8,20,8,34,8,34,8,34,0
  9788. 2.11
  9789. ,0,0
  9790. 2.11
  9791. 560 DATA 8,13,144,37,192,5,130,0,0,0
  9792. 2.11
  9793. ,0,0
  9794. 2.11
  9795. 570 DATA 10,64,60,64,0,64,0,64,63,0
  9796. 2.11
  9797. ,0,0
  9798. 2.11
  9799. 580 DATA 138,56,68,16,130,16,130,16,
  9800. 2.11
  9801. 68,56,0,0
  9802. 2.11
  9803. 590 DATA 71,0,0,124,0,4,0,0,0,0,0,0
  9804. 2.11
  9805. 600 DATA 138,62,0,8,0,20,0,34,0,0,0,0
  9806. 2.11
  9807. 610 DATA 136,130,68,40,16,8,4,2,0,0
  9808. 2.11
  9809. ,0,0
  9810. 2.11
  9811. 620 DATA 10,127,0,4,0,4,0,4,120,4,0,0
  9812. 2.11
  9813. 630 DATA 10,64,32,16,8,4,8,16,96,0
  9814. 2.11
  9815. ,0,0
  9816. 2.11
  9817. 640 DATA 9,128,40,212,0,149,0,149,2,0
  9818. 2.11
  9819. ,0,0
  9820. 2.11
  9821. 650 DATA 139,0,0,0,0,0,0,0,0,0,0,0
  9822. 2.11
  9823. 660 DATA 138,32,0,62,0,32,0,62,0,32
  9824. 2.11
  9825. ,0,0
  9826. 2.11
  9827. 670 DATA 9,63,64,0,68,0,68,56,0,0,0,0
  9828. 2.11
  9829. 680 DATA 139,0,0,0,0,0,0,0,0,0,0,0
  9830. 2.11
  9831. 690 DATA 139,28,34,0,34,0,34,28,32,0
  9832. 2.11
  9833. ,32,0
  9834. 2.11
  9835. 700 DATA 10,32,64,0,64,60,64,0,64,0
  9836. 2.11
  9837. ,0,0
  9838. 2.11
  9839. 710 DATA 9,64,56,4,0,4,0,120,0,0,0,0
  9840. 2.11
  9841. 720 DATA 10,56,68,0,68,187,68,0,68,56
  9842. 2.11
  9843. ,0,0
  9844. 2.11
  9845. 730 DATA 9,65,34,20,8,20,34,65,0,0
  9846. 2.11
  9847. ,0,0
  9848. 2.11
  9849. 740 DATA 11,120,4,0,4,251,4,0,4,120
  9850. 2.11
  9851. ,0,0
  9852. 2.11
  9853. 750 DATA 138,28,34,0,2,12,2,0,34,28
  9854. 2.11
  9855. ,0,0
  9856. 2.11
  9857. 760 DATA -1
  9858. 2.11
  9859.  
  9860. 2.11
  9861. Incidently, this shows how you can include a BASIC program within an
  9862. Obey file and then come back to RUN the rest of the Obey file.
  9863. 2.11
  9864. You have to remember to remove ESC “@” from the Printer On string
  9865. otherwise you will lose all the character definitions you have just
  9866. downloaded! G L Fitton.
  9867. 2.11
  9868. This final section of hints and tips has been extracted from the Archive
  9869. Bulletin Board Service (BBS) by Richard Forster.
  9870. 2.11
  9871. (N.B. There may be some over-lap with other H & T, but I don’t have time
  9872. to edit it out − I’m just off on my Holidays. Ed.)
  9873. 2.11
  9874. •   First Word Plus Margins − It is possible to get First Word Plus to
  9875. change its margins permanently, but it is not easy. It may also depend
  9876. on your version of the software, and this method may not work on all
  9877. versions. Make sure you try it on a backup copy!
  9878. 2.11
  9879. 10 wp%=OPENUP(“Resources.1wp.1wp”)
  9880. 2.11
  9881. 20 margin%=8 : REM or whatever is
  9882. 2.11
  9883.  required
  9884. 2.11
  9885. 30 PTR#wp%=&2EF9C
  9886. 2.11
  9887. 40 BPUT#wp%,margin%
  9888. 2.11
  9889. 50 CLOSE#wp%
  9890. 2.11
  9891. •   Taxan Multisync juddering − If you have an A400/1 or A3000 machine
  9892. and are using it with a Taxan Multisync monitor, you may experience some
  9893. juddering which can be overcome thus:
  9894. 2.11
  9895. A400/1: Fit a molex shunt to link 2. If you do not have a spare shunt,
  9896. you can request one from Acorn Customer Services.
  9897. 2.11
  9898. A3000 : Take your machine to your local dealer. The modification is
  9899. different from the A400/1 machines and you must not open your machine.
  9900. 2.11
  9901. •   Using the Yes/No mouse icon − In order to use the Yes/No mouse icon,
  9902. do:
  9903. 2.11
  9904. SWI “OS_Confirm”
  9905. 2.11
  9906. This changes the pointer shape, flushes the mouse buffer, waits until a
  9907. key is pressed and then, on exit: R0 = (lowercased) character pressed, C
  9908. flag is set if ESCAPE, Z flag set if character is ‘Y’
  9909. 2.11
  9910. •   Saving Rom Sprites − To save rom sprites as a standard file, do:
  9911. 2.11
  9912. SYS“Wimp_BaseOfSprites” TO roms%
  9913. 2.11
  9914. SYS“OS_SpriteOp”,524,roms%,“filename”
  9915. 2.11
  9916. Save this as a BASIC program and double click it from the desktop.
  9917. 2.11
  9918. •   Memory Re-allocation − You can re-allocate memory for spritesize,
  9919. screensize etc. by loading a module called MEMALLOC. This can be found
  9920. on Application Disc 2 in directory $.!Lander.
  9921. 2.11
  9922. •   Hourglass  − The following SYS calls affect the hourglass. Note that
  9923. the hourglass is nested, so if you have turned it on twice it must be
  9924. turned off twice.
  9925. 2.11
  9926. SYS“HourGlass_On” − Display Hourglass
  9927. 2.11
  9928. SYS“HourGlass_Off” − Remove Hourglass
  9929. 2.11
  9930. SYS“HourGlass_percentage”,number − Display Hourglass & percentage below.
  9931. 2.11
  9932. SYS“HourGlass_Smash” − Remove all hourglasses
  9933. 2.11
  9934. SYS“HourGlass-LEDs”,%AB − Where A is the top LED, B is the bottom LED
  9935. 2.11
  9936. SYS“HourGlass_On” has a delay of 1/3 sec before actually appearing. To
  9937. make the delay the value of r0 use:
  9938. 2.11
  9939. SYS“HourGlass_Start”
  9940. 2.11
  9941. •   Tiny directories − The adjust button on a tiny directory opens the
  9942. application and removes that tiny directory.
  9943. 2.11
  9944. •   RISC-OS Speedup − The following calls speed up the machine ROMs from
  9945. 4Mhz to 8Mhz. Try them at your own risk. (Although under Arthur they
  9946. caused crashes, they seem to work OK under RISC-OS) The first switches
  9947. to higher speed, the second resets it:
  9948. 2.11
  9949. SYS“OS_UpdateMEMC”,64,64
  9950. 2.11
  9951. SYS“OS_UpdateMEMC”,,64
  9952. 2.11
  9953. •   Terramex Cheat − For infinite lives, when you first load the game,
  9954. type in “SUBJECTTOCHANGE” on the loading screen.
  9955. 2.11
  9956. •   RISC-OS Bugs − Yes, already folk have found begun to find bugs in
  9957. RISC-OS.
  9958. 2.11
  9959. 1) Module files which show up for *cat as modules but are dated 2:27
  9960. 1901 do not get a module icon in a filer window − this is a property of
  9961. unstamped files from AASM/OBJASM.
  9962. 2.11
  9963. 2) Edit does not work properly in modes 2,4 or 5. (But who would want to
  9964. do so?! Ed.)
  9965. 2.11
  9966. 3) You can drag a directory into itself creating an copy within a copy
  9967. until disc space runs out. (Could that be the answer to the ‘library
  9968. virus’ in the Help!!! section? Ed.)
  9969. 2.11
  9970. 4) Resizing the interactive help window can cause the mouse pointer to
  9971. move autonomously up the screen. Try it: Hold button down and resize it,
  9972. keep holding, and it will go for a certain window size always.
  9973. 2.11
  9974. •   MaxGammon under RISC-OS − If you have a copy of this game, the
  9975. author has a version which works in the desktop. Send your original disk
  9976. and a S.A.E. to 11 Maryland, Barkham, Wokingham, Berkshire RG11 4PB and
  9977. you can have an upgrade to the newer version.
  9978. 2.11
  9979. •   Last line in program  − To find the last line in a BASIC program
  9980. which is in memory, hold down <ctrl>+<shift> and then press <escape>
  9981. twice.
  9982. 2.11
  9983. •   Hearsay Problems − It is still possible to select a route from the
  9984. screen when in a scrolling terminal, but it must be a ‘long’ click. A
  9985. short click tries to home the cursor to where the pointer is by sending
  9986. a string of control codes. The answer is to hold the button down a bit
  9987. longer or use the keyboard.
  9988. 2.11
  9989. If you have problems with Xmodem make sure that Vasscomm is turned off.
  9990. 2.11
  9991. •   Filer_OpenDir − When using Filer_OpenDir, it is important to get the
  9992. full pathname correct. For instance, if your hard disc has the name
  9993. ‘Fred’ and you want to open the directory $.Foo, you should use:
  9994. 2.11
  9995. *Filer_OpenDir adfs::Fred.$.Foo
  9996. 2.11
  9997. and not something like:
  9998. 2.11
  9999. *File_OpenDir adfs::4.Foo
  10000. 2.11
  10001. The reason is that when you click on the drive icon, the Filer checks
  10002. the list of open windows to see if the requested pathname is already
  10003. visible. Unfortunately it is not too intelligent about this, and if the
  10004. names do not match exactly, the Filer will open another window. This
  10005. will have the side effect that when Dismount is used only windows with
  10006. the first pathname will be closed.
  10007. 2.11
  10008. •   Legal Text Scaling for Multisyncs − Richard Averill’s hint last
  10009. month (Archive 2.10 pp 19/20) to help rescale text in multisync modes
  10010. could be done more legally using:
  10011. 2.11
  10012. VDU 23,17,7,flags,x;y;0,0
  10013. 2.11
  10014. flags => bit 0 = not implemented
  10015. 2.11
  10016. bit 1 = 1 => set size of VDU 5 characters
  10017. 2.11
  10018. bit 2 = 1 => set size of VDU 5 spacing
  10019. 2.11
  10020.  10 REM > CharSize    Demonstration
  10021. 2.11
  10022.  of changing character size
  10023. 2.11
  10024.  20 REM By Martin Simmons 10/07/89
  10025. 2.11
  10026.  30
  10027. 2.11
  10028.  40 MODE 12
  10029. 2.11
  10030.  50
  10031. 2.11
  10032.  60 VDU 5:CLS:PRINT‘’
  10033. 2.11
  10034.  70 GCOL 1
  10035. 2.11
  10036.  80 PROCprint(8,16,“Double height”)
  10037. 2.11
  10038.  90 PRINT
  10039. 2.11
  10040. 100 GCOL 2
  10041. 2.11
  10042. 110 PROCprint(16,8,“Double width”)
  10043. 2.11
  10044. 120 PRINT
  10045. 2.11
  10046. 130 GCOL 3
  10047. 2.11
  10048. 140 PROCprint(16,16,“Double size”)
  10049. 2.11
  10050. 150 PRINT
  10051. 2.11
  10052. 160 GCOL 5
  10053. 2.11
  10054. 170 PROCprint2(8,8,16,16,“Double
  10055. 2.11
  10056.  spaced“)
  10057. 2.11
  10058. 180 GCOL 7
  10059. 2.11
  10060. 190 PROCprint(8,4,“Mangled half
  10061. 2.11
  10062.  height“)
  10063. 2.11
  10064. 200 PRINT‘’
  10065. 2.11
  10066. 210 GCOL 6
  10067. 2.11
  10068. 220 PROCprint(120,120,“BIG”)
  10069. 2.11
  10070. 230 VDU 4
  10071. 2.11
  10072. 240 END
  10073. 2.11
  10074. 250
  10075. 2.11
  10076. 260 DEF PROCprint(X%,Y%,text$)
  10077. 2.11
  10078. 270 VDU 23,17,7,6,X%;Y%;0,0
  10079. 2.11
  10080. 280 PRINT text$
  10081. 2.11
  10082. 290 ENDPROC
  10083. 2.11
  10084. 300
  10085. 2.11
  10086. 310 DEF PROCprint2(X%,Y%,sx%,sy%
  10087. 2.11
  10088. ,text$)
  10089. 2.11
  10090. 320 VDU 23,17,7,2,X%;Y%;0,0
  10091. 2.11
  10092. 330 VDU 23,17,7,4,sx%;sy%;0,0
  10093. 2.11
  10094. 340 PRINT text$
  10095. 2.11
  10096. 350 ENDPROC
  10097. 2.11
  10098.  
  10099. 2.11
  10100. •   ARM assembler T option − Martyn Lovell says that although the
  10101. assembler sees the T option for the LDR mnemonic the same as the !
  10102. option (Archive 2.10 p 9), it is not used in the same way. The ! option
  10103. should be used to force write back with pre-indexed addressing while the
  10104. T option should be used with post-indexed addressing to cause the -TRAN
  10105. pin on the ARM to go low for the duration of the data transfer. This is
  10106. used by an OS in non-user modes to allow the OS to generate a user-mode
  10107. address.
  10108. 2.11
  10109. •   ALTernative keys − The RISC-OS Inter-nationalKeyboard module
  10110. provides the facility for typing control characters by holding down
  10111. <alt> and typing the number on the numeric keypad. In addition, the
  10112. following keys produce symbols when pressed with <alt> held down:
  10113. 2.11
  10114. 1 gives 1   2 gives 2   3 gives 3   ~ gives Â
  10115. 2.11
  10116. 9 gives ±   0 gives û   , gives x    . gives Ö
  10117. 2.11
  10118. R gives ¨   Y gives ´   S gives ¤   Z gives Ç
  10119. 2.11
  10120. X gives È   C gives ¢   M gives µ  
  10121. 2.11
  10122. shifted C gives ©
  10123. 2.11
  10124. Other keys return nothing. The old Arthur effect of using
  10125. <ctrl><shift><alt> to add 128 to the code can be produced by RMKILLing
  10126. this module. Doing this will also allow the use of <alt> plus a cursor
  10127. key in the BASIC Editor which does not work with this module installed.
  10128. 2.11
  10129. •   Colour cursor for the BASIC Editor − Here is a little program which
  10130. will alter the ArmBE module so that you can change the colour of the
  10131. cursor.
  10132. 2.11
  10133.  10 REM > ColourEdit Make a colour
  10134. 2.11
  10135.  cursor for the BASIC Editor
  10136. 2.11
  10137.  20 REM By Martin Simmons 11/07/89
  10138. 2.11
  10139.  30 REM I use yellow background,
  10140. 2.11
  10141.  blue foreground, red cursor
  10142. 2.11
  10143.  (1=6 EOR 7)
  10144. 2.11
  10145.  40
  10146. 2.11
  10147.  50 colour%=6  :REM **** CHANGE
  10148. 2.11
  10149.  THIS LINE TO CHANGE THE
  10150. 2.11
  10151.  COLOUR (EOR 7) ****
  10152. 2.11
  10153.  60 DIM buf% &10000
  10154. 2.11
  10155.  70 OSCLI “Load :App2.Modules.
  10156. 2.11
  10157. BasicEdit “+STR$~buf%
  10158. 2.11
  10159.  80 P%=buf%+&81E4
  10160. 2.11
  10161.  90 [ SWI  &100+colour%   ;Change
  10162. 2.11
  10163.  background palette
  10164. 2.11
  10165. 100 ]
  10166. 2.11
  10167. 110 zi%=buf%+&8320:zi%+=8+4*
  10168. 2.11
  10169. ((!zi%<<8)>>8)
  10170. 2.11
  10171. 120 wind%=buf%+&8310:wind%+=8+4*
  10172. 2.11
  10173. ((!wind%<<8)>>8)
  10174. 2.11
  10175. 130 P%=buf%+&8310
  10176. 2.11
  10177. 140 [ SWI  “OS_WriteS”
  10178. 2.11
  10179. 150   EQUB 17 : EQUB 128+colour%
  10180. 2.11
  10181.     ;Set background colour
  10182. 2.11
  10183. 160   EQUB 12  ;Clear screen
  10184. 2.11
  10185. 170   EQUB 23 : EQUB 16 : EQUB 1   
  10186. 2.11
  10187. ;Set cursor movement
  10188. 2.11
  10189. 180   EQUS STRING$(4-(P% AND 3)
  10190. 2.11
  10191. ,CHR$0)
  10192. 2.11
  10193. 190   BL zi%
  10194. 2.11
  10195. 200   BL wind%
  10196. 2.11
  10197. 210 ]
  10198. 2.11
  10199. 220 INPUT‘“Enter new file name for
  10200. 2.11
  10201.  the editor: “file$
  10202. 2.11
  10203. 230 OSCLI “Save ”+file$+“ ”+STR$
  10204. 2.11
  10205. ~buf%+“ +94B4”
  10206. 2.11
  10207. 240 OSCLI “SetType ”+file$+“ FFA”
  10208. 2.11
  10209.  
  10210. 2.11
  10211. •   Wild card copy for RISC-OS − The destination parameter of the *Copy
  10212. command now has greater freedom regarding wild cards i.e. wildcards in
  10213. the destination can be used even though they were not used for the
  10214. source
  10215. 2.11
  10216.  e.g. *COPY :0.Text :1.* is now valid.
  10217. 2.11
  10218. •   RISC-OS disc names − It is possible to set a system variable which
  10219. will behave like a disc name. If you *Set <discname>$Path <filepath> you
  10220. can then access you files by :<discname>.<filename>. For example:
  10221. 2.11
  10222. *Set W App1:$.
  10223. 2.11
  10224. *Run W:!Edit
  10225. 2.11
  10226. You can even define several paths, just like File$Path and Run$Path:
  10227. 2.11
  10228. *Set W App1:$.,App2:$.
  10229. 2.11
  10230. *RMLoad W:Modules.BasicEdit
  10231. 2.11
  10232. *Run W:!Edit
  10233. 2.11
  10234. •   Memory Usage − Gerald Fitton − Of course, the ‘best’ machine has
  10235. both hard disc and 4Mb of memory, but some hard disc machines have less
  10236. memory. If you have the ‘best’ then you will probably put all the
  10237. !(application) directories that you use in your root ($) directory for
  10238. instant access. When you click on the :4 icon in the icon bar, all your
  10239. application !Boot files will be RUN and memory will be allocated to each
  10240. application (so that it is instantly available). This is true even when
  10241. the applications are not installed on the icon bar. If you have less
  10242. memory, say 1Mb, then you may find that your dormant applications are
  10243. using up too much memory for some of the more sophisticated appli
  10244. cations. The solution is to put your applications not in the root
  10245. directory but in a (non-!) sub-directory. For example, !Patience can be
  10246. put together with !Zarch in a games directory, where Games is in the
  10247. root directory. This way, only when you open the Games directory (by
  10248. double clicking on it) will you use up memory on the dormant appli
  10249. cations !Patience and !Zarch.
  10250. 2.11
  10251. •   1st Mail solution − When using 1st Mail in RISC-OS, the printer
  10252. options are hidden underneath another window. Mr Burrows has solved the
  10253. problem by altering the template file:
  10254. 2.11
  10255. *Load $.Resources.1wp.
  10256. 2.11
  10257. 1ml_templa 9000
  10258. 2.11
  10259. !&9AA8=155
  10260. 2.11
  10261. !&9AB0=1023
  10262. 2.11
  10263. *Save $.Resources.1wp.
  10264. 2.11
  10265. 1ml_templa 9000+AEA
  10266. 2.11
  10267. *SetType $.Resources.1wp
  10268. 2.11
  10269. .1ml_templa FFF
  10270. 2.11
  10271. •   RISC-OS Hints and Tips − S C Costin − When using !PrinterDM on the
  10272. Desktop to print a text file, if the printer and Archimedes are set up
  10273. where there are no ignore characters configured, i.e. can be checked as
  10274. follows:
  10275. 2.11
  10276. F12    ;Press function key 12 from desktop
  10277. 2.11
  10278. *status ignore   ;Enter command
  10279. 2.11
  10280. No ignore   ;Returned after entering command
  10281. 2.11
  10282. The problem is that the line feed is suppressed and therefore over-
  10283. printing occurs. This is easily overcome by clicking on the !PrinterDM
  10284. icon on the icon bar, which produces a window, and selecting CR or LF
  10285. conversion.
  10286. 2.11
  10287. A more permanent solution is to edit the file PrData. To do this hold
  10288. shift key while clicking on the application directory !PrinterDM, then
  10289. drag PrData icon over Edit icon on the icon bar and release the mouse
  10290. button. At the end of the printer driver data change line: from 0 to 1
  10291. i.e. change line:
  10292. 2.11
  10293. 0;0/1 1=>convert CR or LF to CR,LF
  10294. 2.11
  10295. to:
  10296. 2.11
  10297. 1;0/1 1=>convert CR or LF to CR,LF
  10298. 2.11
  10299. •   Pipedream conversion to ADFS E type floppy disc by S C Costin
  10300. 2.11
  10301. 1)   Format new disc using the new E format.
  10302. 2.11
  10303. 2)   Name the new disc NewPd.
  10304. 2.11
  10305. 3)   Backup your original copy to the disc NewPd, using *COPY to retain
  10306. E format.
  10307. 2.11
  10308. 4)   Copy the !PipeDream application from the support disc to the root
  10309. directory of disc NewPd.
  10310. 2.11
  10311. 5)   Copy the Floating Point Emulator module from directory
  10312. !System.Modules on Application Disc 1 into directory $.!PipeDream on
  10313. disc NewPd.
  10314. 2.11
  10315. 6)   Delete $.!boot
  10316. 2.11
  10317. 7)   Delete $.piped.fpe2
  10318. 2.11
  10319. 8)   Delete $.rs423drive
  10320. 2.11
  10321. 9)   Add the following obey file called $.!boot
  10322. 2.11
  10323. | > $.!boot
  10324. 2.11
  10325. *quit
  10326. 2.11
  10327. RUN $.!pipedream.!run
  10328. 2.11
  10329. 10)   Leave the !PipeDream.!boot file as copied from the support disc.
  10330. 2.11
  10331. | > !PipeDream.!Boot
  10332. 2.11
  10333. Set PipeDream$Dir <Obey$Dir>
  10334. 2.11
  10335. Set Alias$@RunType_DDE Run <PipeDream$Dir>.!Run %%*0
  10336. 2.11
  10337. Set File$Type_DDE PDream
  10338. 2.11
  10339. IconSprites <PipeDream$Dir>
  10340. 2.11
  10341. .!Sprites
  10342. 2.11
  10343. 11)   If mouse cursor control is required insert lines 7 & 8 in the !Run
  10344. Obey file as follows:
  10345. 2.11
  10346. | > !PipeDream.!Run
  10347. 2.11
  10348. Set PipeDream$Dir <Obey$Dir>
  10349. 2.11
  10350. WimpSlot -min 450k
  10351. 2.11
  10352. ||RMReInit InternationalKeyboard
  10353. 2.11
  10354. RMKill InternationalKeyboard
  10355. 2.11
  10356. RMEnsure FPEmulator 2.60
  10357. 2.11
  10358. RMLoad <Obey$Dir>.FPEmulator
  10359. 2.11
  10360. $.piped.cursorrm
  10361. 2.11
  10362. mousecursor on 13 &c5 131
  10363. 2.11
  10364. Set Alias$@RunType_DDE Run <PipeDream$Dir>.!Run %%*0
  10365. 2.11
  10366. Set File$Type_DDE PDream
  10367. 2.11
  10368. IconSprites <PipeDream$Dir>
  10369. 2.11
  10370. .!Sprites
  10371. 2.11
  10372. Load $.Library.pd 8000
  10373. 2.11
  10374. Echo <26>
  10375. 2.11
  10376. Pointer 0
  10377. 2.11
  10378. Go 8000 ; %*0
  10379. 2.11
  10380. •   Update for Artisan and ProArtisan − Clares have now produced an
  10381. application which will up-date your Artisan and ProArtisan discs for
  10382. RISC-OS. It has been put on both this month’s and last month’s program
  10383. discs. Many thanks to Duncan Burbridge, Kimba, Australia (age 12) who
  10384. also sent us information on updating Artisan for RISC-OS.
  10385. 2.11
  10386. •   Not enough screen memory? − If a program expects to run in a
  10387. specific screen mode and not enough screen memory is available, it will
  10388. usually report a ‘Bad Mode’ error when run from the desktop, as the
  10389. screen memory can’t be expanded dynamically once the application has
  10390. started. This can be fixed by either dragging the screen memory bar in
  10391. the task window, or by entering the appro-priate mode first.  A much
  10392. more elegant way is to add the following line to the Obey file that
  10393. starts the program:  Echo <22><n>  Where <n> is the mode. This ensures
  10394. that the screen memory is allocated before the application starts and
  10395. should appear before the *WimpSlot command.
  10396. 2.11
  10397. •   Uncluttered cataloging − RISC-OS has a neat way of searching a disc
  10398. without cluttering the screen. Use <adjust> to open a directory and it
  10399. closes the one you were in, leaving only the new dir-ectory on the
  10400. screen. To move back up the tree, click <adjust> on the close icon, and
  10401. the next directory up will appear, closing the current directory (unless
  10402. you are in the root directory, of course!).
  10403. 2.11
  10404. •   Bye bye hard disk! − The RAM disc is fantastic but not much use on 1
  10405. Mbyte machines. Also, note that when RAMFS is selected *bye does not
  10406. park the head of the Winchester − so beware!!!
  10407. 2.11
  10408.  
  10409. •   Archive Bulletin Board − This month’s password is “ARCAM” − which is
  10410. apparently the name of Alan Glover’s hi-fi system!
  10411. 2.12
  10412. •   Arthur 1.2 desktop − Nick Furniss has converted the Arthur 1.2
  10413. desktop so that it works under RISC-OS. If you are interested, you
  10414. should contact him at 87 Moordale Avenue, Bracknell, RG12 1TG.
  10415. 2.12
  10416. •   Datachat Modem connections − These connect-ions were sent in by P
  10417. Carlson who is happily using the Datachat to connect to Prestel.
  10418. 2.12
  10419.    Archimedes   Datachat
  10420. 2.12
  10421.    2   5
  10422. 2.12
  10423.    3   1
  10424. 2.12
  10425.    5   3
  10426. 2.12
  10427. Pins 2 & 3 on the Datachat are linked together and pins 1, 6 and 8 are
  10428. linked on the Archimedes.
  10429. 2.12
  10430. •   First Word Plus − Volker Eloesser of West Germany, in response to
  10431. Help needed 2.11, p.15, concerning First Word Plus:
  10432. 2.12
  10433. 1) This sounds as if the printer is configured to a shorter paper length
  10434. than the computer. If the computer sends a page which is one line longer
  10435. than the configured length, the printer will feed the next full page
  10436. after receiving a form-feed command. If the reconfiguration of the
  10437. printer does not work, change the FormFeed command in the printer driver
  10438. (HEX-file) to a no-operation code, such as ‘00’ or ‘*’ and compile a new
  10439. CFG-file.
  10440. 2.12
  10441. 2) Simply close the window by clicking on the close-symbol on the top-
  10442. left corner of the text window before printing.
  10443. 2.12
  10444. •   First Word Plus word-count − The word count in First Word Plus does
  10445. not work properly! It counts a word which contains an apostrophe as two
  10446. words e.g. I’m or it’s. This was very embarrassing for one Archive
  10447. reader, who insisted to his publisher, that he had written a certain
  10448. number of words.
  10449. 2.12
  10450. •   Graphic Writer bug − If you insert a block marker at the end of a
  10451. document, it is possible to scroll past the ‘End’ point. This is usually
  10452. remedied by scrolling back but if you continue editing it is possible to
  10453. crash the application by pressing <ctrl><down arrow> followed by <page
  10454. down> or <page up>. So be careful.
  10455. 2.12
  10456. •   Home Accounts − Just a quick comment on Alan Highet’s Home Accounts
  10457. review in 2.10 − one of his criticisms is that the reporting is limited
  10458. to a whole year’s transactions thus possibly taking up lots of paper;
  10459. whilst this is true, report output can, under RISC-OS, be dragged
  10460. directly into !EDIT and then you can print bits needed.  Not ideal, but
  10461. a solution.
  10462. 2.12
  10463. Also he says that transactions are deleted after a year − this is not
  10464. completely true − only the last 12 months transactions can be graphed
  10465. and edited, but all transactions are kept for viewing in the account/
  10466. header windows. Brian Debenham
  10467. 2.12
  10468. •   Prolog X − We have a hint & tip on “Retaining facts, rules and lists
  10469. produced in Prolog X” written by C.G.Williamson. It was fairly long and
  10470. rather technical, so we did not print it. If anyone would like a copy of
  10471. this, please send an SAE to Adrian Look at the Archive office. (We have
  10472. just received a letter from Jim Davis who says that he would like to
  10473. commend Chris for his “brilliantly simple use of the Prolog built-in
  10474. predicates ‘tell’ and ‘told’.” He quotes several learned texts and says
  10475. that they all miss Chris’ simple combination of ‘tell’, ‘listing(X,Y)’,
  10476. ‘told’ as a method of avoiding the very contrived, but hitherto common,
  10477. use of ‘tell’ and ‘told’. He believes that Chris’ expedient will become
  10478. standard.) Should we therefore publish Chris’ comments? Are there many
  10479. Prolog users out there? Ed.)
  10480. 2.12
  10481. •   QL Reader − Brian Oliver points out that there is a problem with
  10482. QLreader (Shareware 12) in its drive select. Otherwise it is excellent
  10483. and it now works fine with my 5.25“ drive connected to slot :2 after the
  10484. following modification. The SYS ”ADFS_DiscOp“ command on line 2750 is
  10485. wrong. It should be:-
  10486. 2.12
  10487. SYS “XADFS_DiscOp”,,(1+List%<<6),
  10488. 2.12
  10489. Start%+(drive%<<29),bf%,512 TO flags%
  10490. 2.12
  10491. It is then necessary to set the default drive on line 240 and those for
  10492. selection on lines 19740 & 1950.
  10493. 2.12
  10494. •   RS423 Archimedes to Beeb − J.O.Linton: I have been having trouble
  10495. with my RS423 port. My Beeb would listen to my Archimedes but my
  10496. Archimedes would not receive data correctly from my Beeb. I have a
  10497. fairly early Archimedes so I went to some trouble to get the field
  10498. modification done to the serial chip only to find that the fault was
  10499. exactly as before. Then my dealer sent me a leaflet from Acorn (Part No.
  10500. 0476.033) called ‘Using the serial port’ in which I found this vital
  10501. paragraph:
  10502. 2.12
  10503. ‘The Acorn BBC model B uses one stop bit by default, whereas the default
  10504. configuration of an Archimedes computer is two stop bits. You are
  10505. advised to change the DATA configuration of your Archimedes computer to
  10506. 5 if you are using your serial port to pass data to or from a BBC model
  10507. B.’
  10508. 2.12
  10509. *Configure DATA 5 and Hey Presto − it worked!
  10510. 2.12
  10511. •   Systemdevs − When using the System Devices to send characters to the
  10512. printer, the printer ignore character feature is not ‘used’, and all
  10513. characters are sent to the printer − including the printer ignore
  10514. character. This is very useful for sending an alternative character set
  10515. to the printer (if it has a user-defined graphics option) as no
  10516. characters will be ‘stripped’ − rather like using VDU 1,char with the
  10517. VDU drivers. All that needs to be done is give a command similar to:
  10518. *COPY UserChars printer: ~C~V. Michael Ben-Gershon
  10519. 2.12
  10520. •   Teletext Adaptors − Richard House has written some software which
  10521. allows the Archimedes to “grab” teletext pages using the Acorn Teletext
  10522. adaptor. If any one is interested, we can put you in touch with him.
  10523. 2.12
  10524. Herman Stevens from Belgium, says that in order to get the Morley
  10525. teletext adaptor to work with RISC-OS, you require: I/O podule, Soft’s
  10526. “Support” and “ATS” saved on ADFS disc, !65Host copied on the same disc
  10527. and !boot file as follows:
  10528. 2.12
  10529. CLS
  10530. 2.12
  10531. *DIR !65Host
  10532. 2.12
  10533. *RMLoad !RunImage
  10534. 2.12
  10535. *CACHEROM 1 ADFS
  10536. 2.12
  10537. *CACHEROM 3 SUPPORT
  10538. 2.12
  10539. *CACHEROM 4 ATS
  10540. 2.12
  10541. *EMU.
  10542. 2.12
  10543. By typing “TTEXT” you can start the Support ROM and TELETEXT will start
  10544. the ATS ROM.
  10545. 2.12
  10546. •   Taxan Multisync wobbles − The hint last month was expressed in
  10547. rather too technical language. I’ll try again.
  10548. 2.12
  10549. Look at the p.c.b. from the front of the computer and near the serial
  10550. port socket you will see a couple of metal pins sticking up and on the
  10551. board alongside it, the inscription “LK2”. Then over to the left of
  10552. that, about in line with the headphone socket is a set of five pairs of
  10553. pins inscribed as “PL2”. It should have a couple of black plastic/metal
  10554. sleeves on it. These are spare metal shorting links. Slide one of these
  10555. links off (upwards) and put it instead on LK2. That should do the trick.
  10556. 2.12
  10557. •   Compressing Text with OS_PrettyPrint − Under RISC-OS, the
  10558. ‘OS_PrettyPrint’ SWI (c.f. Archive 2.9 p9) has been extended to include
  10559. a ‘dictionary’ facility. When an ASCII <27> code is encountered, the
  10560. next byte will be used to find (and print) a dictionary entry. For
  10561. example:
  10562. 2.12
  10563. Consider the following dictionary:
  10564. 2.12
  10565. 1)   Hello
  10566. 2.12
  10567. 2)   this
  10568. 2.12
  10569. 3)   is
  10570. 2.12
  10571. 4)   Archie
  10572. 2.12
  10573. If you send the codes <27><4> to the OS_Pretty Print SWI, tthe text
  10574. ‘Archie’ will be printed.
  10575. 2.12
  10576. The two bytes <27><4> replace the 5 bytes <65> <114><99><104><101> which
  10577. we actually want printed. The operating system uses this feature to
  10578. compress any strings it might need to print.
  10579. 2.12
  10580. The structure of a dictionary is shown below:
  10581. 2.12
  10582. <entry length> }
  10583. 2.12
  10584. <string>       } repeat
  10585. 2.12
  10586. <0>            }
  10587. 2.12
  10588. .
  10589. 2.12
  10590. .
  10591. 2.12
  10592. <0>            ; end of of dictionary
  10593. 2.12
  10594. Therefore to print an OS_PrettyPrint SWI, you must use the following
  10595. entry parameters:
  10596. 2.12
  10597. r0 -> pointer string
  10598. 2.12
  10599. r1 -> pointer dictionary (0 -> system dictionary)
  10600. 2.12
  10601. r2 -> special string (printed if dictionary entry zero is accessed)
  10602. 2.12
  10603.  10 REM >PrettyPrt
  10604. 2.12
  10605.  20
  10606. 2.12
  10607.  30 REM ****************************
  10608. 2.12
  10609.  40 REM * Using the OS_PrettyPrint *
  10610. 2.12
  10611.  50 REM *   Dictionary Facility    *
  10612. 2.12
  10613.  60 REM *  by Adrian Philip Look   *
  10614. 2.12
  10615.  70 REM *    21st August 1989      *
  10616. 2.12
  10617.  80 REM ****************************
  10618. 2.12
  10619.  90
  10620. 2.12
  10621. 100 DIM dictionary% &400:REM allocate
  10622. 2.12
  10623. some space for the dictionary
  10624. 2.12
  10625. 110 DIM buffer% 3 : REM allocate some
  10626. 2.12
  10627.  space for the string
  10628. 2.12
  10629. 120
  10630. 2.12
  10631. 130 PROCsetupdictionary :REM make a
  10632. 2.12
  10633.  user dictionary
  10634. 2.12
  10635. 140
  10636. 2.12
  10637. 150 buffer%?0=27 : REM a dictionary
  10638. 2.12
  10639.  entry follows
  10640. 2.12
  10641. 160 buffer%?2=0  : REM terminate
  10642. 2.12
  10643.  OS_PrettyPrint string
  10644. 2.12
  10645. 170 FOR x%=0 TO 5
  10646. 2.12
  10647. 180   buffer%?1=x% : REM dictionary
  10648. 2.12
  10649.  entry x%
  10650. 2.12
  10651. 190   PRINT’x%;“ : ”;
  10652. 2.12
  10653. 200   SYS “OS_PrettyPrint”,buffer%,
  10654. 2.12
  10655. dictionary%,“<special string>” +CHR$(0)
  10656. 2.12
  10657. 210 NEXT x%
  10658. 2.12
  10659. 220 PRINT‘
  10660. 2.12
  10661. 230 END
  10662. 2.12
  10663. 240
  10664. 2.12
  10665. 250 DEFPROCsetupdictionary
  10666. 2.12
  10667. 260 x%=dictionary%
  10668. 2.12
  10669. 270 READ s$
  10670. 2.12
  10671. 280 WHILE s$<>“***”
  10672. 2.12
  10673. 290   x%?0=LEN(s$)+2:REM entry length
  10674. 2.12
  10675. 300   $(x%+1)=s$+CHR$(0) :REM null
  10676. 2.12
  10677.  terminated string
  10678. 2.12
  10679. 310   x%+=LEN(s$)+2
  10680. 2.12
  10681. 320   READ s$
  10682. 2.12
  10683. 330 ENDWHILE
  10684. 2.12
  10685. 340 ?x%=0 : REM zero length string to
  10686. 2.12
  10687.  terminate dictionary
  10688. 2.12
  10689. 350 ENDPROC
  10690. 2.12
  10691. 360
  10692. 2.12
  10693. 370 DATA Hello,this,is,Archie,“***”
  10694. 2.12
  10695.  
  10696. 2.12
  10697. •   Copy Options − In Archive 2.10 page 15 we said that there were two
  10698. new copy options L and N. In fact there are five new options, the other
  10699. three being:
  10700. 2.12
  10701. A − Force destination access to same as source
  10702. 2.12
  10703. S − Restamp datestamped files after coping
  10704. 2.12
  10705. T − Only copy the directory structure
  10706. 2.12
  10707. •   Filer_OpenDir and Filer_CloseDir (cont’d) − Gary Atkinson says that
  10708. these commands do not use system variables and so the full directory
  10709. name must be used every time. This makes life difficult for RISC-OS
  10710. applications which want to open a Filer window relative to their present
  10711. position on the disc (which may change e.g. hard disc users).
  10712. 2.12
  10713. Therefore, with this context in mind, Gary has sent in the following
  10714. hint which will read the value of a system variable:
  10715. 2.12
  10716. DIM buffer% 255, temp% 255
  10717. 2.12
  10718. SYS “OS_CLI”,“Filer_OpenDir ” + FNread_system_variable(“Obey$Dir”)
  10719. 2.12
  10720. END
  10721. 2.12
  10722. :
  10723. 2.12
  10724. DEFFNread_system_variable(v$)
  10725. 2.12
  10726. LOCAL len%,x%
  10727. 2.12
  10728. $buffer%=v$
  10729. 2.12
  10730. SYS “OS_ReadVarVal”,buffer%,temp%
  10731. 2.12
  10732. ,255,0,3 TO ,,len%
  10733. 2.12
  10734. v$=“”
  10735. 2.12
  10736. FOR x%=0 TO len%-1
  10737. 2.12
  10738. v$+=CHR$(buffer%?x%)
  10739. 2.12
  10740. NEXT x%
  10741. 2.12
  10742. =v$
  10743. 2.12
  10744. •   Mode 16, 17 and 24 co-ordinates − Under RISC-OS modes 16 and 17 now
  10745. support graphics. This means that a resolution of 1056x256 can now be
  10746. obtained on a normal monitor. However, it should be noted that the
  10747. screen size, in OS co-ordinates, is not 1280x1024 (or even 2048x1024 as
  10748. Richard Averill suggested last month) but 2111x1024. In order to convert
  10749. between the two sizes you should use the following function:
  10750. 2.12
  10751. DEFFNconvert2111to1280(x%)
  10752. 2.12
  10753. =INT(33*(x%+0.5)/20)
  10754. 2.12
  10755. •   Modifying !Calc to accept keyboard input − In order to modify the
  10756. calculator on the Applications Disc 2 to accept keyboard input you must:
  10757. 2.12
  10758. 1) Leave the desktop and type *BASIC.
  10759. 2.12
  10760. 2) Mount Applications Disc 2 in drive 0.
  10761. 2.12
  10762. 3) LOAD “!Calc.!RunImage” and make the follow-ing modifications:
  10763. 2.12
  10764.    Add the following lines:
  10765. 2.12
  10766. 315 WHEN 8 : PROCwndkeyprssd(!q%,
  10767. 2.12
  10768. q%!24)
  10769. 2.12
  10770. 750 DEFPROCwndkeyprssd(handle%
  10771. 2.12
  10772. ,key%) : IF key%>47 AND key%<5 THEN PROCdigit(CHR$(key%))
  10773. 2.12
  10774. 751 CASE key% OF
  10775. 2.12
  10776. 752 WHEN 42: PROCoperator(“*”)
  10777. 2.12
  10778. 753 WHEN 43: PROCoperator(“+”)
  10779. 2.12
  10780. 754 WHEN 47: PROCoperator(“/”)
  10781. 2.12
  10782. 755 WHEN 46: PROCpoint
  10783. 2.12
  10784. 756 WHEN 45: PROCoperator(“-”)
  10785. 2.12
  10786. 757 WHEN 95: PROCoperator(“-”)
  10787. 2.12
  10788. 758 WHEN 61: PROCoperator(“=”)
  10789. 2.12
  10790. 759 ENDCASE
  10791. 2.12
  10792.    Now renumber the program (just type RENUMBER <return>), and then
  10793. type:
  10794. 2.12
  10795. 855 PROCupdate(calc%,12,-28-32,10
  10796. 2.12
  10797. *16+12,24):PROCcalc:ENDPROC
  10798. 2.12
  10799. 105 q%!60=15<<12
  10800. 2.12
  10801. 4) SAVE “!Calc.!RunImage”
  10802. 2.12
  10803.    To use text with the modified calculator just click in the calculator
  10804. window (not on an icon) and type away. Note that a caret will not
  10805. appear.
  10806. 2.12
  10807. •   New CMOS RAM settings for outline fonts − When using the outline
  10808. font manager (which is supplied with the Acorn DTP) you can set various
  10809. font cache thresholds. These thresholds govern which mode of caching is
  10810. used i.e. vertical & horizontal subpixeled, cached outlines, anti-
  10811. aliased outlines, non-exact font from x90y45, and ‘auto-grow’ cache.
  10812. 2.12
  10813. The various thresholds can be set up as follows:
  10814. 2.12
  10815. *Configure FontSize <n>k ; min size of cache
  10816. 2.12
  10817. *Configure FontMax  <n>k ; max size of ‘auto-grow’ cache
  10818. 2.12
  10819. *Configure FontMax1 <h>  ; max size of non-exact font x90y45
  10820. 2.12
  10821. *Configure FontMax2 <h>  ; max size of anti-aliased outlines
  10822. 2.12
  10823. *Configure FontMax3 <h>  ; max size of cached outlines
  10824. 2.12
  10825. *Configure FontMax4 <w>  ; max size of horizontally-subpixeled font
  10826. 2.12
  10827. *Configure FontMax5 <h>  ; max size of vertically-subpixeled font
  10828. 2.12
  10829. where <h> refers to maximum font pixel height (pixel height = point
  10830. height * dpi / 72), and <w> to the maximum font pixel width.
  10831. 2.12
  10832. Some programs may corrupt the CMOS RAM and soil the font cache
  10833. thresholds. This may dramatically reduce the efficiency of cached fonts.
  10834. Use the *STATUS command to view your currents threshold settings (and
  10835. make a note of them just in case the CMOS RAM gets corrupted).
  10836. 2.12
  10837. •   New FPE − There is a new version of the floating pointer emulator
  10838. provided on the Applications Disc 2. If any of your programs use older
  10839. versions of the FPE, you should update the module. This is because the
  10840. pre 2.60 release versions of the FPE have a bug (a badly formed module
  10841. header) which happens to work under Arthur 1.2.
  10842. 2.12
  10843. •   New system variable − There is a new system variable, called
  10844. Font$Path, which tells the Archimedes where anti-aliased fonts can be
  10845. found. It has the same syntax as Load$Path and Run$Path. This means that
  10846. fonts can be accessed from several different directories e.g. *Set
  10847. Font$Path $.Fonts1, $.Fonts2,$.Fonts3 will allow the fonts manager to
  10848. access anti-aliased fonts from three directories $.Font1, $.Font2 and
  10849. $.Font3. To remain compatible with the earlier versions of the font
  10850. manager you can *Set Font$Path <Font$Prefix>.
  10851. 2.12
  10852. •   OS_ChangedBox − RISC-OS now offers a facility which will keep track
  10853. of the areas on the ‘screen’ which have been altered by calls to the VDU
  10854. drivers. When enabled, this feature will pro-vide a rectangle (co-
  10855. ordinates in pixels from the bottom left-hand corner) of the area on the
  10856. ‘screen’ which has been changed. The parameters are:
  10857. 2.12
  10858. Entry:
  10859. 2.12
  10860. R0 = 0  -> disable changed box calculations
  10861. 2.12
  10862.    = 1  -> enable changed box calculations
  10863. 2.12
  10864.    = 2  -> reset changed box to null rectangle
  10865. 2.12
  10866.    = -1 -> read changed box info
  10867. 2.12
  10868. Exit:
  10869. 2.12
  10870. R0 = old enable state
  10871. 2.12
  10872. R1 points to a fixed block of 5 words
  10873. 2.12
  10874.    [R1, #0]  = disable/enable flag
  10875. 2.12
  10876.    [R1, #4]  = x-coordinate of left edge of box
  10877. 2.12
  10878.    [R1, #8]  = y-coordinate of bottom edge of box
  10879. 2.12
  10880.    [R1, #12] = x-coordinate of right edge of box
  10881. 2.12
  10882.    [R1, #16] = y-coordinate of top edge of box
  10883. 2.12
  10884. An example program:
  10885. 2.12
  10886.  10 REM >Changed
  10887. 2.12
  10888.  20
  10889. 2.12
  10890.  30 REM *************************
  10891. 2.12
  10892.  40 REM *  Using OS_ChangedBox  *
  10893. 2.12
  10894.  50 REM * by Adrian Philip Look *
  10895. 2.12
  10896.  60 REM *   22nd August 1989    *
  10897. 2.12
  10898.  70 REM *************************
  10899. 2.12
  10900.  80
  10901. 2.12
  10902.  90 MODE 12 : OFF
  10903. 2.12
  10904. 100
  10905. 2.12
  10906. 110 PROCenablecalulations
  10907. 2.12
  10908. 120 PROCresetrectangle
  10909. 2.12
  10910. 130
  10911. 2.12
  10912. 140 LINE 400,400,600,600
  10913. 2.12
  10914. 150 PROCreadbox
  10915. 2.12
  10916. 160 RECTANGLE FILL 300,300,10,10
  10917. 2.12
  10918. 170 PROCreadbox
  10919. 2.12
  10920. 180 RECTANGLE FILL 700,700,30,30
  10921. 2.12
  10922. 190 PROCreadbox
  10923. 2.12
  10924. 200 CIRCLE 250,250,200
  10925. 2.12
  10926. 210 PROCreadbox
  10927. 2.12
  10928. 220 RECTANGLE 550,450,500,300
  10929. 2.12
  10930. 230 PROCreadbox
  10931. 2.12
  10932. 240
  10933. 2.12
  10934. 250 PROCdisablecalulations : ON
  10935. 2.12
  10936. 260 PRINT
  10937. 2.12
  10938. 270 END
  10939. 2.12
  10940. 280
  10941. 2.12
  10942. 290 DEFPROCresetrectangle
  10943. 2.12
  10944. 300 SYS “OS_ChangedBox”,2
  10945. 2.12
  10946. 310 ENDPROC
  10947. 2.12
  10948. 320
  10949. 2.12
  10950. 330 DEFPROCenablecalulations
  10951. 2.12
  10952. 340 SYS “OS_ChangedBox”,1
  10953. 2.12
  10954. 350 ENDPROC
  10955. 2.12
  10956. 360
  10957. 2.12
  10958. 370 DEFPROCdisablecalulations
  10959. 2.12
  10960. 380 SYS “OS_ChangedBox”,0
  10961. 2.12
  10962. 390 ENDPROC
  10963. 2.12
  10964. 400
  10965. 2.12
  10966. 410 DEFPROCreadbox
  10967. 2.12
  10968. 420 PROCdisablecalulations
  10969. 2.12
  10970. 430 SYS “OS_ChangedBox”,-1 TO ,data%
  10971. 2.12
  10972. 440 x0%=data%!4: y0%=data%!8
  10973. 2.12
  10974. 450 x1%=data%!12 : y1%=data%!16
  10975. 2.12
  10976. 460
  10977. 2.12
  10978. 470 PRINTTAB(0,0);“Changed Box
  10979. 2.12
  10980. Rectangle (in pixels not
  10981. 2.12
  10982.  OS coords)“
  10983. 2.12
  10984. 480 PRINT“left x:   ”;x0%;“     ”
  10985. 2.12
  10986. 490 PRINT“bottom y: ”;y0%;“     ”
  10987. 2.12
  10988. 500 PRINT“right x:  ”;x1%;“     ”
  10989. 2.12
  10990. 510 PRINT“top y:    ”;y1%;“     ”
  10991. 2.12
  10992. 520
  10993. 2.12
  10994. 530 PRINT‘“press any key to step
  10995. 2.12
  10996. through demo“
  10997. 2.12
  10998. 540 QQ=GET
  10999. 2.12
  11000. 550 PROCenablecalulations
  11001. 2.12
  11002. 560 ENDPROC
  11003. 2.12
  11004. •   ProArtisan & Artisan upgrades to RISC-OS − ProArtisan discs need to
  11005. be changed so that they work under RISC-OS. This upgrade avoids the
  11006. dreaded “Filecore in use” error, and is available from Clares Micros if
  11007. you send them a blank D-formatted disc.
  11008. 2.12
  11009. •   RISC-OS printer drivers and Line Feeds − If your printer does not
  11010. automatically generate line feeds when it receives a carriage return you
  11011. can make the RISC printer drivers generate one for you. Once the printer
  11012. drive is installed on you must click on the printer icon with the SELECT
  11013. button. This will reveal a window which contains an option to convert
  11014. single line feeds or carriage returns into a single line feed and
  11015. carriage return i.e. CR or LF => CR,LF.
  11016. 2.12
  11017. If you wish to make this option permanent just select the ‘Save Choices’
  11018. option on the printer driver menu.
  11019. 2.12
  11020. •   RISC-OS will run old WIMP programs (i.e. it emulates the Arthur 1.2
  11021. Window Manager) but because the emulation is not complete there are some
  11022. anomalies with the sprite handling. (a) selected sprites are rendered
  11023. incorrectly (b) sprite are scaled according to the screen mode (this did
  11024. not happen before). In practice, however, this affects very few
  11025. applications.
  11026. 2.12
  11027. •   The *CDIR command for the ADFS, RAMFS, and NETFS now creates
  11028. unlocked directories. This means that directories can be renamed, moved
  11029. and deleted from the desktop. However, the contents of a directory must
  11030. be deleted before the directory itself can be deleted.
  11031. 2.12
  11032. •   The Window Manager (RISC-OS) no longer reserves 32k permanent memory
  11033. for window definitions, etc but acquires memory from the RMA as it is
  11034. needed. This means that some Arthur 1.2 wimp programs may fail to start,
  11035. giving a ‘No room to create window’ error. This can usually be solved by
  11036. increasing the memory allocated to the RMA (by dragging the RMA bar in
  11037. the Task Manager) before starting the application.
  11038. 2.12
  11039. The following hints and tips were sent in by Paul Witheridge
  11040. 2.12
  11041. •   Cancelling tasks from the “Task Display” − If you call up the Task
  11042. Display by clicking the mouse menu button on the Task Manager Icon at
  11043. the right-hand end of the icon bar and then selecting Task Display from
  11044. the resulting menu, you will get, among other things, a one line display
  11045. for each active task, showing the name of the task and how much memory
  11046. it uses.
  11047. 2.12
  11048. If you position the pointer on that display line and click menu again,
  11049. you will see a very similar menu, but this time there is a menu item for
  11050. the task in question. This menu item has a sub-menu arrow. If you move
  11051. the pointer onto it, you will be rewarded with a sub-menu with a just a
  11052. single item, “Quit”. Clicking on this will usually, but not always,
  11053. cause the task to terminate.
  11054. 2.12
  11055. From the programmer’s point of view, the next time the task in question
  11056. issues a Wimp_Poll request, it will receive a reason code 18 with a
  11057. subordinate code of 8 in the fifth word of the parameter block. It
  11058. should interpret this as a directive to terminate.
  11059. 2.12
  11060. •   Command files from within an Obey file − One of the main differences
  11061. between Command files and Obey files is that input from a Command file
  11062. can be passed to the OS Command Line Interpreter or to an application,
  11063. while input from an Obey file is only passed to the Command Line
  11064. Interpreter. This means that when an application program is started up
  11065. by a RUN command in an Obey file, the following line of the Obey file
  11066. will always be treated as a command and never as input to the appli
  11067. cation program. For example if the following is an Obey file:
  11068. 2.12
  11069. Dir ADFS:$.BasPgms
  11070. 2.12
  11071. BASIC
  11072. 2.12
  11073. Dir ADFS:$
  11074. 2.12
  11075. Then the second DIR command will be executed after quitting from BASIC.
  11076. If, instead, the file is a Command file, then as soon as BASIC starts up
  11077. it will read the “Dir ADFS:$” as input (and since it does not begin with
  11078. an asterisk, it will not understand it and treat it as a mistake).
  11079. 2.12
  11080. You can use a combination of Obey and Command files to start up an
  11081. application program and provide it with an initial set of input data.
  11082. This can be very useful, but to be successful, you must know a little
  11083. more about what happens when a Command file is executed from within an
  11084. Obey file. Consider the following example:
  11085. 2.12
  11086. | > ObeyFile
  11087. 2.12
  11088. Echo Output 1 from ObeyFile
  11089. 2.12
  11090. Exec CmndFile
  11091. 2.12
  11092. Echo Output 2 from ObeyFile
  11093. 2.12
  11094. | > CmndFile
  11095. 2.12
  11096. Echo Output from CmndFile
  11097. 2.12
  11098. When the Obey file is run, the following output is produced:
  11099. 2.12
  11100. Output 1 from ObeyFile
  11101. 2.12
  11102. Output 2 from ObeyFile
  11103. 2.12
  11104. * | > CmndFile
  11105. 2.12
  11106. * Echo Output from CmndFile
  11107. 2.12
  11108. Output from CmndFile
  11109. 2.12
  11110. From this output, you can see that despite the fact that the “Exec
  11111. CmndFile” command came between the two “Echo” commands in the Obey file,
  11112. the contents of the Command file were not actually executed until the
  11113. Obey file was finished with. The Command Line Interpreter obviously
  11114. gives precedence to Obey files over Command files. All that the EXEC
  11115. command did was to open the Command file for input and assign the system
  11116. input stream to it. It did not actually read anything from it. This was
  11117. left to the Command Line Interpreter, but it did not resume reading from
  11118. the system input stream until it had exhausted the Obey file.
  11119. 2.12
  11120. Since application programs can take input from a Command file, but not
  11121. from an Obey file, an EXEC command can be used within an Obey file to
  11122. “stack” input ready for an application program. The following example of
  11123. an Obey file and a Command file can be used to create a RISC-OS
  11124. application for the Basic Editor:
  11125. 2.12
  11126. | > !BasicEdit.!Run
  11127. 2.12
  11128. If “<System$Path>” = “” then Error 0 System resources cannot be found
  11129. RMensure ARMBasicEditor 1.00 RMload System:Modules.BasicEdit
  11130. 2.12
  11131. Key 2 EDIT .|M
  11132. 2.12
  11133. Key 4 *QUIT|M
  11134. 2.12
  11135. Wimpslot -min 100k
  11136. 2.12
  11137. Exec <Obey$Dir>.!Init
  11138. 2.12
  11139. Basic -load %*0
  11140. 2.12
  11141. *| > !BasicEdit.!Init
  11142. 2.12
  11143. EDIT
  11144. 2.12
  11145. Both files should reside in a application directory called “!BasicEdit”.
  11146. An accompanying “!sprites” file would be nice, but is not essential
  11147. since in its absence, RISC-OS will use the default sprite for an
  11148. application.
  11149. 2.12
  11150. The “Exec <Obey$Dir>.!Init” command in the Obey file opens the Command
  11151. file and when the following “Basic -load %*0” command executes, BASIC
  11152. reads the contents of the Command file as if it were being entered from
  11153. the keyboard.
  11154. 2.12
  11155. If you double-click on the icon for “!BasicEdit” in a directory viewer,
  11156. the Basic Editor is started up ready to create a new program. If you
  11157. install “!BasicEdit” on the icon bar using TinyDirs, you can drag the
  11158. icon for a BASIC program from a directory viewer to the “!BasicEdit”
  11159. icon on the icon bar, which will start up the Basic Editor and load the
  11160. program into it ready to edit.
  11161. 2.12
  11162. The following example consists of an Obey file and a Command file to
  11163. start up Twin as an application and to change the default colours used
  11164. by twin from white on black to blue on cyan. The contents of the Obey
  11165. file, which is the !Run file in the !Twin application directory, are:
  11166. 2.12
  11167. | > !Twin.!Run
  11168. 2.12
  11169. WimpSlot -min 100k
  11170. 2.12
  11171. Load ADFS:%%.Twin 8000
  11172. 2.12
  11173. Exec <Obey$Dir>.!Init
  11174. 2.12
  11175. Go 8000 ; %*0
  11176. 2.12
  11177. and the contents of the Command file, which is named “!Init” and also
  11178. resides in the !Twin directory, are (in the notation used for *BUILD
  11179. etc):
  11180. 2.12
  11181. |!|A|S|@|F|@|@|@|S|A|D|@|@|@
  11182. 2.12
  11183. The Obey file assumes that Twin resides in the current ADFS library,
  11184. refering to it as “ADFS:%%”. “ADFS” must be specified in case the ADFS
  11185. is not the current filing system and “%%” will be replaced by a single
  11186. percentage sign by the argument substitution process for Obey files.
  11187. Twin is loaded at &8000 because in a RISC-OS multi-tasking environment,
  11188. the amount of storage available to start up TWIN is often not enough to
  11189. load it at its “normal” load address of &80000 (leading to the dreaded
  11190. error message: “No writeable memory at this address”). Note that loading
  11191. Twin at &8000 leaves no memory for starting up applications from within
  11192. Twin. Such applications would normally run at &8000 and utilise the
  11193. memory between &8000 and Twin’s normal load address at &80000).
  11194. 2.12
  11195. The Command file seems to consist of unintelligible hieroglyphics. The
  11196. first character (shown as “|!|A”) is actually &81 and has the same
  11197. effect on Twin as pressing function key one. The remaining eight
  11198. characters (shown as “|S|@|F|@|@|@|S|A|D|@|@|@”) are equivalent to:
  11199. 2.12
  11200.    ctrl-S ctrl-@ ctrl-F ctrl-@ ctrl-@ ctrl-@
  11201. 2.12
  11202.    ctrl-S ctrl-A ctrl-D ctrl-@ ctrl-@ ctrl-@
  11203. 2.12
  11204. which will have the same effect when read by Twin as the BASIC
  11205. statements:
  11206. 2.12
  11207.    VDU 19,0,5,0,0,0
  11208. 2.12
  11209.    VDU 19,1,4,0,0,0
  11210. 2.12
  11211. mapping logical colour zero to physical colour five (cyan) and logical
  11212. colour one to physical colour four (blue).
  11213. 2.12
  11214. As in the case of !BasicEdit, double clicking on the !Twin icon in a
  11215. directory viewer will start up Twin without any file loaded, while
  11216. installing !Twin on the icon bar via TinyDirs will allow dragging file
  11217. icons to the !Twin icon on the icon bar, starting up Twin and loading
  11218. the file.
  11219. 2.12
  11220. •   Error signalling from within a machine code subroutine called from
  11221. BASIC −Under BASIC V version 1.04, it is simple to signal an error
  11222. condition from a machine code subroutine by setting the over-flow flag
  11223. and loading register zero with a pointer to an error block before
  11224. returning to BASIC.
  11225. 2.12
  11226. Consider these two, almost identical examples:
  11227. 2.12
  11228. The first assembles and calls a machine code subroutine that points
  11229. register zero to an error block (see line 70) and then returns to BASIC
  11230. with the overflow flag cleared (see line 80). This program terminates
  11231. normally without an error:
  11232. 2.12
  11233.  10 REM > Example1
  11234. 2.12
  11235.  20
  11236. 2.12
  11237.  30 DIM code% 100
  11238. 2.12
  11239.  40 FOR pass% = 0 TO 3 STEP 3
  11240. 2.12
  11241.  50 P%=code%
  11242. 2.12
  11243.  60 [OPT pass%
  11244. 2.12
  11245.  70 ADR R0,errblk
  11246. 2.12
  11247.  80 BICS PC,R14,#&10000000
  11248. 2.12
  11249.  90 .errblk EQUD 99
  11250. 2.12
  11251. 100 EQUS “I am an error message”
  11252. 2.12
  11253. 110 EQUB 0
  11254. 2.12
  11255. 120 ]:NEXT
  11256. 2.12
  11257. 130 ON ERROR PROCerror
  11258. 2.12
  11259. 140 CALL code%
  11260. 2.12
  11261. 150 END
  11262. 2.12
  11263. 160 :
  11264. 2.12
  11265. 170 DEF PROCerror
  11266. 2.12
  11267. 180 PRINT “Nmbr=”; ERR
  11268. 2.12
  11269. 190 PRINT “Text=”; REPORT$
  11270. 2.12
  11271. 200 PRINT “Line=”; ERL
  11272. 2.12
  11273. 210 END
  11274. 2.12
  11275. 220 ENDPROC
  11276. 2.12
  11277. The second example is exactly the same except that it sets the overflow
  11278. flag (see line 80) before returning to BASIC:
  11279. 2.12
  11280.  10 REM > Example2
  11281. 2.12
  11282.  20
  11283. 2.12
  11284.  30 DIM code% 100
  11285. 2.12
  11286.  40 FOR pass% = 0 TO 3 STEP 3
  11287. 2.12
  11288.  50 P%=code%
  11289. 2.12
  11290.  60 [OPT pass%
  11291. 2.12
  11292.  70 ADR R0,errblk
  11293. 2.12
  11294.  80 ORRS PC,R14,#&10000000
  11295. 2.12
  11296.  90 .errblk EQUD 99
  11297. 2.12
  11298. 100 EQUS “I am an error message”
  11299. 2.12
  11300. 110 EQUB 0
  11301. 2.12
  11302. 120 ]:NEXT
  11303. 2.12
  11304. 130 ON ERROR PROCerror
  11305. 2.12
  11306. 140 CALL code%
  11307. 2.12
  11308. 150 END
  11309. 2.12
  11310. 160 :
  11311. 2.12
  11312. 170 DEF PROCerror
  11313. 2.12
  11314. 180 PRINT “Nmbr=”; ERR
  11315. 2.12
  11316. 190 PRINT “Text=”; REPORT$
  11317. 2.12
  11318. 200 PRINT “Line=”; ERL
  11319. 2.12
  11320. 210 END
  11321. 2.12
  11322. 220 ENDPROC
  11323. 2.12
  11324. In this second case, an error occurs, which is trapped by the ON ERROR
  11325. statement (see line 130) and results in the following lines being
  11326. printed by PROCerror:
  11327. 2.12
  11328. Nmbr=99
  11329. 2.12
  11330. Text=I am an error message
  11331. 2.12
  11332. Line=140
  11333. 2.12
  11334. This use of the overflow flag can result in unexpected behaviour from
  11335. some programs. For example, if the last SWI call in a machine code
  11336. subroutine returns with the overflow flag set, indicating an error
  11337. occurred during the execution of the SWI, and this flag is not reset
  11338. before the subroutine returns to BASIC, then BASIC will take this as an
  11339. error condition. Exactly what happens depends on the contents of
  11340. register zero. If it points to a valid error block, then BASIC’s error
  11341. trapping mechanism will function properly. Otherwise unpredictable
  11342. errors (such as an address exception) will happen.
  11343. 2.12
  11344. •   New SWI calls in RISC-OS − The following program can be used to list
  11345. all the SWI calls available in OS. It basically works by calling the
  11346. “OS_SWINumberToString” SWI for all possible SWI numbers and displaying
  11347. the returned string. To speed things up it checks to see if the first
  11348. SWI in a each chunk of 64 is valid. If not, it ignores the rest of the
  11349. chunk. “Valid” in this case means that the SWI name is neither
  11350. “OS_Undefined” nor “User”. SWI names beginning with “X” are also ignored
  11351. as duplicates.
  11352. 2.12
  11353.  10 REM > SWIlist
  11354. 2.12
  11355.  20 :
  11356. 2.12
  11357.  30 buflen%=100
  11358. 2.12
  11359.  40 DIM buffer% buflen%
  11360. 2.12
  11361.  50 :
  11362. 2.12
  11363.  60 SYS “OS_SWINumberFromString”,,
  11364. 2.12
  11365. “XOS_SWINumberToString” TO S%
  11366. 2.12
  11367.  70 :
  11368. 2.12
  11369.  80 VDU 14
  11370. 2.12
  11371.  90 :
  11372. 2.12
  11373. 100 FOR chunk% = 0 TO &80000 STEP 64
  11374. 2.12
  11375. 110 SYS S%,chunk%,buffer%,buflen%
  11376. 2.12
  11377.  TO ,swi$;V%
  11378. 2.12
  11379. 120 IF V%AND1 ELSE IF LEFT$(swi$,1)
  11380. 2.12
  11381. =“X” ELSE IF swi$ =“User” ELSE IF swi$<>“OS_Undefined” PROCchunk
  11382. 2.12
  11383. 130 NEXT
  11384. 2.12
  11385. 140 :
  11386. 2.12
  11387. 150 VDU15
  11388. 2.12
  11389. 160 :
  11390. 2.12
  11391. 170 END
  11392. 2.12
  11393. 180
  11394. 2.12
  11395. 190 DEFPROCchunk
  11396. 2.12
  11397. 200 FOR swi% = chunk% TO chunk%+63
  11398. 2.12
  11399. 210 SYS S%,swi%,buffer%,buflen% TO
  11400. 2.12
  11401.  ,swi$;V%
  11402. 2.12
  11403. 220 IF V%AND1 ELSE IF LEFT$(swi$,1)
  11404. 2.12
  11405. =“X” ELSE IF swi$=“User” ELSE IF swi$<>“OS_Undefined” PRINT “SWI number
  11406. ”;RIGHT$(“0000”+
  11407. 2.12
  11408. STR$~swi%,5);“ is ”;swi$
  11409. 2.12
  11410. 230 NEXT
  11411. 2.12
  11412. 240 ENDPROC
  11413. 2.12
  11414. If this program is run, a list of SWIs is generated. Those for the
  11415. FPemulator and ColourTrans will only be listed if the relevant Relocat
  11416. able Module is loaded when SWIlist is run. Those for RamFS will only be
  11417. listed if the RAM disc is configured.
  11418. 2.12
  11419. The program was also run against Arthur 1.2 and by comparing the two
  11420. listings, it was possible to identify those SWIs which appeared in the
  11421. RISC-OS listing but not in that for Arthur. These are presumably new
  11422. SWIs and are listed below.
  11423. 2.12
  11424. 00049   OS_ReadArgs
  11425. 2.12
  11426. 0004A   OS_ReadRAMFsLimits
  11427. 2.12
  11428. 0004B   OS_ClaimDeviceVector
  11429. 2.12
  11430. 0004C   OS_ReleaseDeviceVector
  11431. 2.12
  11432. 0004D   OS_DelinkApplication
  11433. 2.12
  11434. 0004E   OS_RelinkApplication
  11435. 2.12
  11436. 0004F   OS_HeapSort
  11437. 2.12
  11438. 00050   OS_ExitAndDie
  11439. 2.12
  11440. 00051   OS_ReadMemMapInfo
  11441. 2.12
  11442. 00052   OS_ReadMemMapEntries
  11443. 2.12
  11444. 00053   OS_SetMemMapEntries
  11445. 2.12
  11446. 00054   OS_AddCallBack
  11447. 2.12
  11448. 00055   OS_ReadDefaultHandler
  11449. 2.12
  11450. 00056   OS_SetECFOrigin
  11451. 2.12
  11452. 00057   OS_SerialOp
  11453. 2.12
  11454. 00058   OS_ReadSysInfo
  11455. 2.12
  11456. 00059   OS_Confirm
  11457. 2.12
  11458. 0005A   OS_ChangedBox
  11459. 2.12
  11460. 0005B   OS_CRC
  11461. 2.12
  11462. 0005C   OS_ReadDynamicArea
  11463. 2.12
  11464. 0005D   OS_PrintChar
  11465. 2.12
  11466. 000EB   OS_ConvertFixedFileSize
  11467. 2.12
  11468. 000EC   OS_ConvertFileSize
  11469. 2.12
  11470. 00240   IIC_Control
  11471. 2.12
  11472. 40098   Font_ReadColourTable
  11473. 2.12
  11474. 400DE   Wimp_StartTask
  11475. 2.12
  11476. 400DF   Wimp_ReportError
  11477. 2.12
  11478. 400E0   Wimp_GetWindowOutline
  11479. 2.12
  11480. 400E1   Wimp_PollIdle
  11481. 2.12
  11482. 400E2   Wimp_PlotIcon
  11483. 2.12
  11484. 400E3   Wimp_SetMode
  11485. 2.12
  11486. 400E4   Wimp_SetPalette
  11487. 2.12
  11488. 400E5   Wimp_ReadPalette
  11489. 2.12
  11490. 400E6   Wimp_SetColour
  11491. 2.12
  11492. 400E7   Wimp_SendMessage
  11493. 2.12
  11494. 400E8   Wimp_CreateSubMenu
  11495. 2.12
  11496. 400E9   Wimp_SpriteOp
  11497. 2.12
  11498. 400EA   Wimp_BaseOfSprites
  11499. 2.12
  11500. 400EB   Wimp_BlockCopy
  11501. 2.12
  11502. 400EC   Wimp_SlotSize
  11503. 2.12
  11504. 400ED   Wimp_ReadPixTrans
  11505. 2.12
  11506. 400EE   Wimp_ClaimFreeMemory
  11507. 2.12
  11508. 400EF   Wimp_CommandWindow
  11509. 2.12
  11510. 400F0   Wimp_TextColour
  11511. 2.12
  11512. 400F1   Wimp_TransferBlock
  11513. 2.12
  11514. 400F2   Wimp_ReadSysInfo
  11515. 2.12
  11516. 400F3   Wimp_SetFontColours
  11517. 2.12
  11518. 401C7   Sound_QInterface
  11519. 2.12
  11520. 40244   ADFS_Retries
  11521. 2.12
  11522. 40245   ADFS_DescribeDisc
  11523. 2.12
  11524. 40289   Podule_HardwareAddress
  11525. 2.12
  11526. 40540   FileCore_DiscOp
  11527. 2.12
  11528. 40541   FileCore_Create
  11529. 2.12
  11530. 40542   FileCore_Drives
  11531. 2.12
  11532. 40543   FileCore_FreeSpace
  11533. 2.12
  11534. 40544   FileCore_FloppyStructure
  11535. 2.12
  11536. 40545   FileCore_DescribeDisc
  11537. 2.12
  11538. 405C0   Shell_Create
  11539. 2.12
  11540. 405C1   Shell_Destroy
  11541. 2.12
  11542. 406C0   Hourglass_On
  11543. 2.12
  11544. 406C1   Hourglass_Off
  11545. 2.12
  11546. 406C2   Hourglass_Smash
  11547. 2.12
  11548. 406C3   Hourglass_Start
  11549. 2.12
  11550. 406C4   Hourglass_Percentage
  11551. 2.12
  11552. 406C5   Hourglass_LEDs
  11553. 2.12
  11554. 40700   Draw_ProcessPath
  11555. 2.12
  11556. 40701   Draw_ProcessPathFP
  11557. 2.12
  11558. 40702   Draw_Fill
  11559. 2.12
  11560. 40703   Draw_FillFP
  11561. 2.12
  11562. 40704   Draw_Stroke
  11563. 2.12
  11564. 40705   Draw_StrokeFP
  11565. 2.12
  11566. 40706   Draw_StrokePath
  11567. 2.12
  11568. 40707   Draw_StrokePathFP
  11569. 2.12
  11570. 40708   Draw_FlattenPath
  11571. 2.12
  11572. 40709   Draw_FlattenPathFP
  11573. 2.12
  11574. 4070A   Draw_TransformPath
  11575. 2.12
  11576. 4070B   Draw_TransformPathFP
  11577. 2.12
  11578. 40780   RamFS_DiscOp
  11579. 2.12
  11580. 40781   RamFS_NOP
  11581. 2.12
  11582. 40782   RamFS_Drives
  11583. 2.12
  11584. 40783   RamFS_FreeSpace
  11585. 2.12
  11586. 40784   RamFS_NOP
  11587. 2.12
  11588. 40785   RamFS_DescribeDisc
  11589. 2.12
  11590. 40740   ColourTrans_SelectTable
  11591. 2.12
  11592. 40741   ColourTrans_SelectGCOLTable
  11593. 2.12
  11594. 40742   ColourTrans_ReturnGCOL
  11595. 2.12
  11596. 40743   ColourTrans_SetGCOL
  11597. 2.12
  11598. 40744   ColourTrans_ReturnColourNumber
  11599. 2.12
  11600. 40745   ColourTrans_ReturnGCOLForMode
  11601. 2.12
  11602. 40746   ColourTrans_ReturnColourNumber
  11603. 2.12
  11604. ForMode
  11605. 2.12
  11606. 40747   ColourTrans_ReturnOppGCOL
  11607. 2.12
  11608. 40748   ColourTrans_SetOppGCOL
  11609. 2.12
  11610. 40749   ColourTrans_ReturnOppColour
  11611. 2.12
  11612. Number
  11613. 2.12
  11614. 4074A   ColourTrans_ReturnOppGCOLFor
  11615. 2.12
  11616. Mode
  11617. 2.12
  11618. 4074B   ColourTrans_ReturnOppColour
  11619. 2.12
  11620. NumberForMode
  11621. 2.12
  11622. 4074C   ColourTrans_GCOLToColourNumber
  11623. 2.12
  11624. 4074D   ColourTrans_ColourNumberToGCOL
  11625. 2.12
  11626. 4074E   ColourTrans_ReturnFontColours
  11627. 2.12
  11628. 4074F   ColourTrans_SetFontColours
  11629. 2.12
  11630. 40750   ColourTrans_InvalidateCache
  11631. 2.12
  11632. •   Starting up TinyDirs automatically via the Desktop initialisation
  11633. file − Archive 2.10  p 15, refers to the facility whereby the Desktop
  11634. can be caused to run a file of initialisation commands at start-up time.
  11635. One command that can be included in this file is a command to start up
  11636. TinyDirs and automatically install high-use directories or applications
  11637. on the icon bar.
  11638. 2.12
  11639. TinyDirs accepts multiple arguments on the command, separated by blanks.
  11640. So, if you created two application directories for, say, the Basic
  11641. Editor and Twin, you could include the following command in the Desktop
  11642. startup file (assuming that the name of the disc where !TinyDirs,
  11643. !BasicEdit and !Twin all reside is “SysDisc”):
  11644. 2.12
  11645. Run ADFS::SysDisc.$.!TinyDirs ADFS::SysDisc.$.!BasicEdit
  11646. ADFS::SysDisc.$.!Twin
  11647. 2.12
  11648. Although two icons will be installed on the icon bar, only one copy of
  11649. the TinyDirs application is started up. If two separate commands had
  11650. been used:
  11651. 2.12
  11652. Run ADFS::SysDisc.$.!TinyDirs ADFS::SysDisc.$.!BasicEdit
  11653. 2.12
  11654. Run ADFS::SysDisc.$.!TinyDirs ADFS::SysDisc.$.!Twin
  11655. 2.12
  11656. then, although the icon bar would look exactly the same, with the same
  11657. two icons installed, two copies of TinyDirs would have been started up,
  11658. using twice the memory.
  11659. 2.12
  11660. It also seems safe to reduce the memory required by TinyDirs from 32k to
  11661. 24k by altering the WimpSlot command in the !Run file for TinyDirs to
  11662. 2.12
  11663. WimpSlot -min 24k -max 24k
  11664. 2.12
  11665.  
  11666. •   Acorn DTP fonts and print outs − P.J.Burn says that in order to
  11667. print out Acorn DTP documents on an A310 you should select mode 11 as
  11668. this releases 40k of memory. He also says that in order to increase the
  11669. speed of the DTP screen update you should ensure that the font cache is
  11670. 24k or larger.
  11671. 3.1
  11672. •   Acorn DTP double spacing − Some readers have complained that when
  11673. starting a new paragraph the Acorn DTP will always produce a double
  11674. space. This can be solved by altering the space above setting of the
  11675. paragraph’s style.
  11676. 3.1
  11677. •   BASIC listings for !Edit − Mark Taylor says that it is easy to
  11678. create an ASCII copy of a BASIC program. Just install !Edit in the
  11679. normal way and then create a task window (this can be done by clicking
  11680. the MENU button on the !Edit icon and selecting the ‘New task window’
  11681. item from the ‘Create’ sub-menu). In this window start BASIC by typing
  11682. *BASIC, then just LOAD the required program and LIST it. You can now
  11683. save the contents of the window  as a normal ASCII file.
  11684. 3.1
  11685. •   C operating system calls (issue 2.12 p 36 cont) − Ray Loades-Bannon
  11686. says that to access OSCLI commands from C you should use either:
  11687. 3.1
  11688. system (“screensave <pathname>””)
  11689. 3.1
  11690. or:
  11691. 3.1
  11692. {3 .1
  11693.    char *cptr;
  11694. 3.1
  11695.    strcpy (cptr,“screensave ”);
  11696. 3.1
  11697.    strcat(cptr,pathnameptr);
  11698. 3.1
  11699.    system(cptr);
  11700. 3.1
  11701. }
  11702. 3.1
  11703. See the ‘Calling other programs from C’ chapter in the C manual for
  11704. further details.
  11705. 3.1
  11706. •   Debugger BreakPoints − When stepping though code, it is useful to
  11707. run the code up to a breakpoint, and then remove the breakpoint and
  11708. reposition it further ahead. Here are three function keys defin-itions
  11709. suggested by Robin Terry to help you do this:
  11710. 3.1
  11711. *Key1 “BreakClr PC|MBreakSet ”
  11712. 3.1
  11713. *Key2 “Continue|M”
  11714. 3.1
  11715. *Key3 “MemoryI PC|M”
  11716. 3.1
  11717. The first breakpoint is set by using *BreakSet, but subsequent break
  11718. points can be set by pressing <f1> and typing in the address. Then press
  11719. <f2> should be pressed to execute the code , and <f3> should be pressed
  11720. to look at where you’ve got to.
  11721. 3.1
  11722. •   Droom under RISC-OS − A.H.Eagle says that when using Droom under
  11723. RISC-OS the $.Data.Map program just caused the computer to freeze at
  11724. line 820. This line reads 820 ?&CFF=L, and doesn’t seem to serve any
  11725. purpose (perhaps it is a hang-over from the BBC version). He removed
  11726. this line and the program now seems to work OK ( ... so far!).
  11727. 3.1
  11728. •   Econet and the Desktop − A warning to all people using the desktop
  11729. on the network: *commands are truncated to about 80 characters by the
  11730. NetFiler, so for example, if you are several directories down and you
  11731. rename a file, it could be renamed to something that you didn’t quite
  11732. expect. More dangerous is the *Delete, in that you could want to *delete
  11733. net#254:<pathname>.FredOld  but your good copy is deleted when the
  11734. command is truncated to *delete net#254:<pathname>.Fred. Truncation
  11735. occurs due to the Acorn fileservers only being able to cope with data
  11736. packets of around 80 characters (although the SJ Research fileserver can
  11737. handle packets up to 128 characters). Another interesting feature is
  11738. that if the *command is over 128 characters, no truncation occurs and a
  11739. Net error is generated.
  11740. 3.1
  11741. •   Filer_OpenDir revisited (issue 2.12 p 6 cont) − A simpler way of
  11742. using system variables with the *Filer_OpenDir command has been
  11743. suggested by one of the Archive BBS callers:
  11744. 3.1
  11745. *Set Alias$temp Filer_OpenDir <system variable>|MUnset Alias$temp|M
  11746. 3.1
  11747. *temp
  11748. 3.1
  11749. This sets up a system variable, called Alias$temp, which is used to
  11750. expand the system variable and then delete itself once called.
  11751. 3.1
  11752. •   Hard Disc Backup program on Careware 3 − Terry Bromilow says: “The
  11753. program was originally written to run under Arthur OS using the D or L
  11754. format discs. I put a new front end on it to make an application for
  11755. RISC-OS and put in some lines to accommodate E format discs. It is now
  11756. evident that the latter did not get tested.
  11757. 3.1
  11758. The BASIC program !Hdb_v200 in the !HDBackup directory should be amended
  11759. as follows:-
  11760. 3.1
  11761. Interchange the adjacent lines 2140 and 2150 and put a new line between
  11762. them: 2141 *DISMOUNT
  11763. 3.1
  11764. •   Hard disc parking (2.11 p 13 cont) − Martyn Lovell says that
  11765. although *bye from a non-adfs filing system won’t park an adfs hard disc
  11766. *adfs:bye will (SCSI hard drive owners should use *scsi:bye).
  11767. 3.1
  11768. •   Keyboard condensation − One reader has noted that there is no
  11769. lacquer on the top surface of the keyboard PCB. It is not unusual for
  11770. people to blow dust, etc away from the keyboard, however, this will
  11771. cause condensation onto the PCB and cause some minor corrosion. This can
  11772. easily be wiped away.
  11773. 3.1
  11774. •   Limited ADFS memory error − The ADFS module will remember the
  11775. catalogues of any discs it sees (e.g. those that it *mounts). However,
  11776. it is limited to the amount of memory it can allocate to ‘remembering’
  11777. these catalogues. This is governed by the *Configure ADFSDirCache
  11778. command. When the ADFS directory cache is full, the oldest catalogues
  11779. should be discarded as new ones are encountered. Unfortunately, the 
  11780. module has a bug, which prevents it from doing this properly. What makes
  11781. this bug so serious is that it can cause the dreaded ‘Filecore in use’
  11782. error, which cannot be rectified, thereby making it impossible for you
  11783. to save any data, etc that you might have been working on. (If Phil
  11784. Colmer at Acorn, or whoever, could give us a clue on this one, that
  11785. would be useful. Ed.)
  11786. 3.1
  11787. •   Naming discs − You may already realise that you should not give
  11788. discs the same name (using the *NameDisc command) as RISC-OS will only
  11789. access one of the discs i.e. the one most recently *MOUNTed. David
  11790. Leckie found that this also holds up for fileservers discs. He had two
  11791. separate fileservers 254 and 245 both with hard disks called FS, as you
  11792. can imagine this cause much confusion!
  11793. 3.1
  11794. •   Obey module bug − “Speak and I shall obey ... or maybe not.” There
  11795. is a bug in the obey module supplied in the ROMS (v0.07). If an
  11796. environment variable is set to a string ending with the tilde character
  11797. (~) then the string will magically acquire a few extra characters, or
  11798. worse.
  11799. 3.1
  11800. Using Edit, create a new obey file containing the command:
  11801. 3.1
  11802. Set testvariable abcdef~
  11803. 3.1
  11804. or similar, ensuring that the <return> key is pressed immediately after
  11805. the tilde (~). Save the file to a directory window and then double click
  11806. on the file icon to run the file. This will create the variable
  11807. “testvariable”. Press <f12> to get a system prompt and type
  11808. 3.1
  11809. Show testvariable
  11810. 3.1
  11811. to display the variable’s value. It will show some-thing like
  11812. 3.1
  11813. testvariable : abcdef~~&’
  11814. 3.1
  11815. i.e. it has acquired a few extra characters. (N.B. I’ve been unable to
  11816. repeat (see below) this so the characters may be wrong − but I do know
  11817. where they originate from so this is an educated guess)
  11818. 3.1
  11819. Worse is that depending on the exact situation when the file is run an
  11820. “Abort on Data Transfer” error may occur (!!) and the variable will not
  11821. have been created.
  11822. 3.1
  11823. The problem is easily solved − don’t try and create a string ending with
  11824. ~ in an obey file. If necessary a space can be placed after the tilde
  11825. (~) and this will be enough to prevent the error. Clifford Hoggarth
  11826. 3.1
  11827. •   RAM disc size − To read the size of a RAM disc, not *configured but
  11828. set from within the desktop task manager you should use:
  11829. 3.1
  11830. SYS “OS_ReadRAMFsLimits” TO A,B
  11831. 3.1
  11832. (B-A)/1024 gives the size of the the RAM disc in kbytes.
  11833. 3.1
  11834. To check if a *configured ram disc exists then try:
  11835. 3.1
  11836. SYS “OS_Byte”,161,144 To ,,ramdiscsize%
  11837. 3.1
  11838. The variable ramdiscsize% indicates the number of RAM pages to be
  11839. allocated to the RAM disc e.g. 8k blocks for a 300 series.
  11840. 3.1
  11841. •   Recursive directory copying − If you copy a directory into itself
  11842. (as Clive Payne did with his library directory in issue 2.11 p 15) the
  11843. computer will get into an infinite loop of copying directories inside of
  11844. themselves. To stop the computer from using all your disc space up, you
  11845. can press the escape key. The error can then be rectified by going into
  11846. the parent directory and deleting its children i.e. you don’t have to
  11847. reformat your disc!
  11848. 3.1
  11849. •   ROM Speed Up − In several Archive issues (e.g. issue 2.11 p 8) we
  11850. have pointed out that the speed at which the Archimedes runs its ROMs
  11851. can be increased. Martyn Lovell advises us that this can cause RISC-OS
  11852. to crash and so is not very reliable.
  11853. 3.1
  11854. •   Squish − I am very pleased with Mike Harrison’s “SQUISH” program (on
  11855. Careware disc 2). It enables me to write meaningful, well laid out
  11856. programs and then to gain processing speed following compression.
  11857. Brilliant!
  11858. 3.1
  11859. I have, however, discovered a bug. This occurs whenever you use a
  11860. statement such as:
  11861. 3.1
  11862. IF a=b c=d
  11863. 3.1
  11864. What actually happens is that it compresses to:
  11865. 3.1
  11866. IF a=bc=d
  11867. 3.1
  11868. The program then fails “Unknown or missing variable”. To circumvent
  11869. this, the full construct IF ... THEN ... should be used. B.R.Wilson,
  11870. Solihull
  11871. 3.1
  11872. •   Uncluttering catalogues (2.11 p 13 cont) − If you close down an
  11873. application using the ADJUST button the filer will (re)open the viewer
  11874. containing the file you last accessed.
  11875. 3.1
  11876. •   Using Sys$DateFormat (issue 2.12 p 19 cont) − Mark Taylor (along
  11877. with several others) has answered a question which appeared in last
  11878. month’s Help!!! column.
  11879. 3.1
  11880. The system variable Sys$DateFormat is only used by the SWI call
  11881. OS_ConvertStandardDate AndTime and not by the BASIC pseudo variable
  11882. TIME$ (see pp 400-402 of the old PRM for further details).
  11883. 3.1
  11884.  10 REM >$.Convert
  11885. 3.1
  11886.  20 REM a program to convert TIME &
  11887. 3.1
  11888.  DATE in to a string,
  11889. 3.1
  11890.  30 REM in the format of the system
  11891. 3.1
  11892. variable Sys$DateFormat
  11893. 3.1
  11894.  40 :
  11895. 3.1
  11896.  50 REM some workspace for the time
  11897. 3.1
  11898.  & date SYS call
  11899. 3.1
  11900.  60 DIM block% 100
  11901. 3.1
  11902.  70 :
  11903. 3.1
  11904.  80 *Set Sys$DateFormat
  11905. 3.1
  11906. %yr%mn%dy%24%mi%se
  11907. 3.1
  11908.  90 string$=FNtime_date
  11909. 3.1
  11910. 100 PRINT “The time is
  11911. 3.1
  11912. (YYMMDDHHMMSS) = “;string$
  11913. 3.1
  11914. 110 END
  11915. 3.1
  11916. 120 :
  11917. 3.1
  11918. 130 DEFFNtime_date
  11919. 3.1
  11920. 140 REM first get 5 byte time code
  11921. 3.1
  11922. 150 REM using OS_Word &0E,3
  11923. 3.1
  11924. 160 SYS “OS_Word”,&0E,3 TO r0,r1
  11925. 3.1
  11926. 170 :
  11927. 3.1
  11928. 180 REM get date & time string
  11929. 3.1
  11930. 190 SYS “OS_ConvertStandardDate
  11931. 3.1
  11932. AndTime“,block%,block%+50,49
  11933. 3.1
  11934.  TO r0,r1,r2
  11935. 3.1
  11936. 200 :
  11937. 3.1
  11938. 210 REM extract string from data
  11939. 3.1
  11940.  block
  11941. 3.1
  11942. 220 date$=“”
  11943. 3.1
  11944. 230 FOR x%=0 TO (12-r2)
  11945. 3.1
  11946. 240 data$+=CHR$(r0?x%)
  11947. 3.1
  11948. 250 NEXT x%
  11949. 3.1
  11950. 260 =date$
  11951. 3.1
  11952.  
  11953. 3.1
  11954. •   VIDC warning − Someone (Philip Green, I think) sent in a warning to
  11955. say that you should NEVER connect and disconnect video and monitor
  11956. connections with the computer switched on for fear of damaging the VIDC.
  11957. 3.1
  11958. I have been doing just that for two years now on several different
  11959. Archimedes computers and have NEVER had any problems, so I wasn’t going
  11960. to bother printing the warning − it seemed a little over cautious. This
  11961. morning I connected up a brand new monitor, live as usual, and got a
  11962. funny picture. “Drat”, says I, “It’s a DOA and will have to go back to
  11963. the distributor from whence it came!” However, further fiddling and
  11964. switching of monitors (live) between computers revealed that the
  11965. computer was at fault − there were funny dark vertical lines down the
  11966. display and the sound was a bit croaky (sound comes through VIDC). This
  11967. is what you call learning the hard way or “Pride comes before a fall” or
  11968. something. Anyway, don’t say we didn’t warn you! Ed.
  11969. 3.1
  11970. •   Hints & Tips printing error, Archive 2.12 p 7. The IF statement at
  11971. line 750 is incorrect − a 7 has been cut off by the editor − ‘key% < 5’
  11972. should read ‘key% <57’.
  11973.  
  11974. •   *RMTidy and ADFS − If you perform a *RMTidy any discs will be
  11975. dismounted and any directory settings (*DIR) will be lost. This is
  11976. because this function re-initialises all the modules including the
  11977. FileCore%ADFS and ADFS modules.
  11978. 3.2
  11979. •   Acorn DTP − if you want to import text that has a return at the end
  11980. of each line e.g. spooled BASIC programs, poetry, songs, etc then if you
  11981. import them directly Acorn DTP will ignore the returns and give you a
  11982. continuous block of text. There is a way around this problem:
  11983. 3.2
  11984. 1) In Acorn DTP define a new style say PROGRAM or SONG, etc
  11985. 3.2
  11986. 2) Set the space above parameter to 0
  11987. 3.2
  11988. 3) Load your text into !Edit
  11989. 3.2
  11990. 4) Select the find window of the !Edit menu i.e. press <f4>
  11991. 3.2
  11992. 5) Select the ‘magic characters’ option
  11993. 3.2
  11994. 6) Type: \x0A into the find box and /x0a/x0a in the replace box
  11995. 3.2
  11996. 7) Select the GO option and then select the ‘replace end of file’ option
  11997. 3.2
  11998. The effect is that each line is treated as a new paragraph with its
  11999. style defined as PROGRAM.
  12000. 3.2
  12001. •   Alphabase RISC-OS compatible? I read Gerald Fitton’s tale of woe
  12002. (Archive 2.12 p43) just two days after encountering exactly the same
  12003. problem myself with Alphabase. The ‘Readme’ file on the program disc
  12004. states that hard disc installation can be done in ‘the usual RISC-OS
  12005. manner’ rather that using the ‘Install’ file. It seems to me that it
  12006. must be done in the former way! Apart from messing up the configure
  12007. settings as Gerald describes, ‘Install’ fails to copy the !Alphabase
  12008. application directory to drive 4 (it can’t, since the *COPY command
  12009. issued at line 160 has no R option). Remedying this doesn’t help: the
  12010. program still crashes with a ‘can’t find’ message when you attempt to
  12011. boot via the Library. After wasting many hours in debugging attempts, I
  12012. scrubbed the lot and simply copied !Alphabase to :4.$, whence the
  12013. program is run without problems by clicking on the desktop. Inciden
  12014. tally, again contrary to what is said on the ‘Readme’ file, the floppy
  12015. disc stubbornly refused to boot on Shift-Break. Bill Templeton.
  12016. 3.2
  12017. •   Archimedes Fans − Ray Maidstone of Norwich has been investigating
  12018. Archimedes fans (the cooling kind). He says that if you plug in any
  12019. extensions on to your Archimedes e.g. backplanes, RAM upgrades, etc then
  12020. you really should be using a fan. This keeps the temperature of the
  12021. Archimedes at an acceptable level, thereby extending the life of the
  12022. components.
  12023. 3.2
  12024. •   Binary-Chop − Michael Sawle sent in this routine which can be used
  12025. for locating an item in an array − one of the beauties of this routine
  12026. being that it only needs enough characters to uniquely identify the
  12027. string being searched for. The routine requires data to be stored
  12028. alphabetically in a matrix M$(1),M$(2),...,M(NR%) where NR% is the
  12029. number of records currently stored. The routine returns the matrix
  12030. element number of the desired record (or nearest available).
  12031. 3.2
  12032. DEFFNbinarychop(find$)
  12033. 3.2
  12034. LOCAL A%,B%,R%
  12035. 3.2
  12036. where=0 : A%=0 : B%=NR%
  12037. 3.2
  12038. REPEAT
  12039. 3.2
  12040. R%=INT((A%+B%)/2)
  12041. 3.2
  12042. IF M$(R%)>find$ THEN
  12043. 3.2
  12044. B%=R%
  12045. 3.2
  12046. ELSE
  12047. 3.2
  12048. IF M$(R%)<find$ THEN A%=R%
  12049. 3.2
  12050. ELSE
  12051. 3.2
  12052. where=R%
  12053. 3.2
  12054. ENDIF
  12055. 3.2
  12056. ENDIF
  12057. 3.2
  12058. UNTIL where>0 OR B%-A%=1
  12059. 3.2
  12060. IF where=0 THEN where=A%+1
  12061. 3.2
  12062. =where
  12063. 3.2
  12064. In fact this routine should be called a binary search routine. It chops
  12065. the list of records in two and then checks which half of the data set
  12066. the search string should appear. It then chops this half in two and so
  12067. on until finds the string or it realises the string does not exist. This
  12068. means that the computer can significantly reduce the number of checks it
  12069. has to make before reaching a result e.g. if you have 32768 (i.e. 2^15)
  12070. records then the computer will make a maximum of 15 checks. The price
  12071. that must be paid for this efficiency is that the data set must be
  12072. sorted in some recognisable order e.g. alphabetically, numerically,
  12073. ASCII, etc. The best versions of this technique are usually recursive.
  12074. (Perhaps someone might like to have a go at writing one?)
  12075. 3.2
  12076. •   Colour TV’s as monitors − Several times in Hints & Tips, connection
  12077. of the Archimedes to colour TV’s has been mentioned. I have succeeded in
  12078. doing just this. In Archive 2.7 p11, Oliver Cornes says that plugging
  12079. the Archimedes’ SCART into a video recorder doesn’t work − this is
  12080. because a VCR only deals with composite signals, not RGB. However, if
  12081. your TV has a SCART socket, and many new ones do, then connection may
  12082. well be possible direct to the TV. You will have to tell the TV to use
  12083. RGB input, not the composite (it only uses composite then for timing).
  12084. There may be (indeed, it would be odd if there wasn’t) a way of doing
  12085. this with the TV controls. My TV has two sockets and if you tell it to
  12086. use socket 0 it uses socket one with RGB.
  12087. 3.2
  12088. However, I didn’t find this out until I found out that one of the pins
  12089. on the SCART standard is for just this type of use − pin 16 must be
  12090. between +1V and +3V with respect to pin 18 (i.e. connect a 1.5V battery
  12091. between them − the −ve end to pin 18, the +ve end to pin 16). The TV
  12092. then automatically switches to SCART RGB input. Note that this overrides
  12093. any channel selection made, so you should put a switch in line so you
  12094. can switch the signal off, otherwise you can’t watch TV. Connection to
  12095. the SCART plug is often maligned as difficult, but it is only a case of
  12096. knowing how to do it. The proper way is to remove the pin you wish to
  12097. make connection to, connect it up and then put it back. The pins have
  12098. barbs to prevent them from falling out, so use a pair of narrow pliers
  12099. to squeeze the barb back and push the pin out through the rear of the
  12100. plug. Also make sure that you re-insert the pin the right way round −
  12101. just copy the other pins. They only go in properly one way round anyway.
  12102. Kevin Quinn
  12103. 3.2
  12104. •   FileCore in use remedy − If the Archimedes ‘sees’ too many ADFS
  12105. directories then a ‘Filecore in use’ error may occur and you will be
  12106. unable to save any data in your machine. You can overcome this by typing
  12107. the following four lines after the error has occurred:
  12108. 3.2
  12109. *RmReInit FileCore (this will fail giving a Bad number error)
  12110. 3.2
  12111. *RmReInit FileCore
  12112. 3.2
  12113. *RmReInit ADFS
  12114. 3.2
  12115. *RmReInit HardDisc (A300’s and A3000’s only)
  12116. 3.2
  12117. •   MaxGammon update − The MaxGammon game on Careware 2 cannot be played
  12118. in mode 15. In order to over come this you should:
  12119. 3.2
  12120. 1) Load in the BASIC !RunImage file in the !MaxGammon directory.
  12121. 3.2
  12122. 2) Type the following:
  12123. 3.2
  12124. 10840colour%=FNmg_Colour(mg_red
  12125. 3.2
  12126. _player%)
  12127. 3.2
  12128. 11230tc%=mgc_grey_point%
  12129. 3.2
  12130. 3) Save the program.
  12131. 3.2
  12132. •   Oak MS-DOS SCSI as Drive D − I use the PC emulator occasionally for
  12133. my work. It therefore did not take very long to use up all 10M of the
  12134. MS-DOS drive C partition on my 47M SCSI drive. The obvious thing to do
  12135. would be to create another MS-DOS partition for drive D. However on the
  12136. version of the PC emulator that I am using (Emulate121) the Archimedes
  12137. hard discs 4 and 5 are mapped to MS-DOS discs C and D. Therefore drive C
  12138. and D cannot both exist on the same hard disc (on the emulator) and two
  12139. hard disc drives are required for two partitions.
  12140. 3.2
  12141. On the OAK SCSIFS each winchester drive has the following information:-
  12142. 3.2
  12143. a) filing system drive number (e.g. :4 or :5)
  12144. 3.2
  12145. b) SCSI hardware address (each device on the SCSI bus has a unique
  12146. address)
  12147. 3.2
  12148. c) logical unit number (SCSI ‘software’ address)
  12149. 3.2
  12150. If you are lucky enough to have an OAK SCSI (::SCSIDisk4) with an MS-DOS
  12151. partition (Drive _C) then here’s how to create MS-DOS drive D.
  12152. 3.2
  12153. 1. Run ‘SCSIForm’
  12154. 3.2
  12155. 2. Note that drive :4 is SCSI ID = 0, LUN = 0
  12156. 3.2
  12157. 3. Add drive 5 with SCSI with SCSI ID = 0, LUN = 0 (same as drive :4)
  12158. 3.2
  12159. 4. Exit SCSIForm and enter the desktop. There should be an additional
  12160. hard disc icon ‘SCSI 5’
  12161. 3.2
  12162. 5. Start up the PC emulator (version 1.20 or greater?)
  12163. 3.2
  12164. 6. Type FDISK. An extra option should appear (5 − select next fixed disc
  12165. drive). Select this and the disc drive should now become number 2. Then
  12166. select option 1 ‘Create DOS Partition’
  12167. 3.2
  12168. 7. Type Format D:
  12169. 3.2
  12170. 8. Type CHKDSK D: (this checks partition is OK)
  12171. 3.2
  12172. 9. When using the desktop always us SCSIFS::SCSIDisc4. Ignore disc 5
  12173. 3.2
  12174. Ralph Barrett
  12175. 3.2
  12176. (We have not had a chance to try this out yet, so you follow these
  12177. suggestions at your own peril. Ed)
  12178. 3.2
  12179. •   Recursive directory move bug − one reader noted that while in the
  12180. desktop, if you moved a directory into itself (by holding the shift
  12181. button down while copying) the files in the directory will be moved
  12182. further and further down a directory tree until your whole disc has been
  12183. filled with directories! The problem with this bug is that you can’t
  12184. move your files back to their original position because the disc is
  12185. already full. You must copy the other files onto another disc and then
  12186. remove the offending directory.
  12187. 3.2
  12188. •   To scroll or not to scroll? The strange behaviour mentioned in the
  12189. BASIC V Forum (Archive 3.1 p36) is actually caused by the *Configure
  12190. Scroll or *Configure NoScroll setting. This setting allows us to control
  12191. the behaviour of the ends of lines. *Configure Scroll should be used for
  12192. compatibility with earlier machines. The RISC-OS desktop, however, has a
  12193. habit of countermanding the configured values and in this case it
  12194. decides that it prefers NoScroll. If you have a program which relies on
  12195. the behaviour of the ends of lines, then you can execute VDU 23,16,&FE,1
  12196. || to temporarily obtain the Scroll option, or VDU 23,16,&FE,0 || to
  12197. obtain NoScroll behaviour.
  12198. 3.2
  12199.  
  12200. •   AutoCAD to !Draw conversion − The RISC-OS application !Draw can
  12201. accept input from a DXF (Drawing Interchange Format) file. These files
  12202. can be produced by packages such as ‘AutoSketch’ and ‘AutoCAD’. To get a
  12203. file from a IBM PC running the ‘AutoCAD’ package to !Draw the following
  12204. procedure should be used.
  12205. On the IBM PC:
  12206. 1.   Do a ‘DXFOUT’ command from within Auto-CAD to output the current
  12207. file in DXF format.
  12208. 2.   This file should be copied to a IBM format 5.25“ or 3.5” disc.
  12209. On the Archimedes:
  12210. 3.   Start the PC emulator on the Archimedes.
  12211. 3.3
  12212. 4.   Perform a ‘putfile MS_DOS_Name.dxf ADFS_Name’ from within the
  12213. emulator to transfer the file from MS-DOS to RISC-OS.
  12214. 3.3
  12215. 5.   From within RISC-OS set the file type of your file to &DEA
  12216. (*SETTYPE ADFSName DEA).
  12217. 3.3
  12218. 6.   Start !Draw and drag the DXF file to its icon or into a !Draw
  12219. window.
  12220. 3.3
  12221. !Draw will ask you a question about the ‘units’ (scale) before redrawing
  12222. the image in the window. This may require some thought to get the
  12223. required effect. !Draw appears to get confused with some entries in DXF
  12224. files and refuse to load the file. Deleting the text in the original
  12225. picture may cure the problem. AutoSketch on the Archimedes can also
  12226. produce DXF type files for input into !Draw.
  12227. 3.3
  12228. •   ‘C’ Operating System calls (cont’d) − The following example program
  12229. shows how system commands can be invoked from a C-program. It was tested
  12230. under Acorn ANSI C version 2. The use of the function ‘system’ is part
  12231. of the proposed ANSI standard for C, although its exact implement-ation
  12232. is left up to the individual versions of C. The Acorn ‘ANSI C’ library
  12233. function ‘system’ returns a zero value if the command executes success
  12234. fully and non-zero if it fails. Problems will occur if the command being
  12235. executed over-writes the C-prog-ram (for example if the command starts
  12236. up a second C-program), but in the example both commands are ‘built-in’
  12237. and therefore do not overwrite the invok-ing program. In theory, the
  12238. *RMLoad command fails if there is not enough RMA, but in testing the
  12239. example, it worked even when the free RMA was configured to 0k.
  12240. 3.3
  12241. /* > c.systest */
  12242. 3.3
  12243. #include <stdlib.h>   /* General
  12244. 3.3
  12245.  utilities  */
  12246. 3.3
  12247. #include <stdio.h>   /* Input/output  
  12248. 3.3
  12249. */
  12250. 3.3
  12251. int main ()
  12252. 3.3
  12253. {3 .3
  12254. static char rmload[]=“rmload
  12255. 3.3
  12256. system:modules.memalloc“;
  12257. 3.3
  12258. static char screensave[]=
  12259. 3.3
  12260.  “screensave screenfile”;
  12261. 3.3
  12262. int result1,result2;
  12263. 3.3
  12264. result1=system(rmload);
  12265. 3.3
  12266. result2=system(screensave);
  12267. 3.3
  12268. printf(“Result1=%d, Result2=%d\n”
  12269. 3.3
  12270. ,result1,result2);
  12271. 3.3
  12272. return(0);
  12273. 3.3
  12274. }
  12275. 3.3
  12276. •   Dead modules − If you install a module which claims a vector and
  12277. then press the reset button, something very strange happens when you
  12278. want to *RMKill the module. Because the vector can’t be released, the
  12279. module isn’t killed properly. To let you know about this, RISC-OS puts
  12280. the dummy address DEADDEAD where you would expect the workspace address:
  12281. 3.3
  12282. *rmkill printkill
  12283. 3.3
  12284. Bad vector release
  12285. 3.3
  12286. *modules
  12287. 3.3
  12288. No   Position   Workspace Name
  12289. 3.3
  12290. 1   0380873C   00000000   UtilityModule
  12291. 3.3
  12292. 2   0381FB94   01800014   FileSwitch
  12293. 3.3
  12294. ...
  12295. 3.3
  12296. 27   0387EA48   00000000   SpriteUtils
  12297. 3.3
  12298. 28   01813BC4   DEADDEAD   PrintKey
  12299. 3.3
  12300. etc
  12301. 3.3
  12302. •   Definitive modem connections? The following connections work with
  12303. ArcTerm601, Hearsay and the Archive BBS for the WS3000 and SM2400
  12304. modems:
  12305. 3.3
  12306. Arc RX (2) to Modem TX (3)
  12307. 3.3
  12308. Arc TX (3) to Modem RX (2)
  12309. 3.3
  12310. Arc GND (5) to Modem GND (7, not 1)
  12311. 3.3
  12312. Arc RI (9) to Modem DCD (8)
  12313. 3.3
  12314. Arc CTS (8), DCD (1), and DTR(4) to Modem DTR (20)
  12315. 3.3
  12316. Arc RTS (7) to Modem RTS (4)
  12317. 3.3
  12318. Arc DSR (6) to Modem CTS (5)
  12319. 3.3
  12320. •   Digitisers? Who needs one, anyway ? We recently faced the problem of
  12321. how to get the company logo into a DRAW file, and came up with a
  12322. solution which may be useful to other people. It is most applicable to
  12323. images bounded largely by straight lines.
  12324. 3.3
  12325. First take the image and enlarge it repeatedly using a photocopier until
  12326. it fills more than a third of the screen of the monitor you are using.
  12327. Then make one more enlargement, onto the transparent acetate sheets used
  12328. for overhead projector foils. If you do not have a copier you will find
  12329. most high street copier services can do all this for you, probably for
  12330. less than a pound. Our copier will enlarge to 145% at a time.
  12331. 3.3
  12332. Now cut out the piece of acetate showing the image, and put it on your
  12333. monitor screen. You will find it sticks most satisfyingly. Enter DRAW
  12334. and register the coordinates of the corners of the image. You may want
  12335. to have a grid on the screen to ensure you line up the acetate image
  12336. with the edges of the screen. You can also check alignment by reading
  12337. the coordinates of points which should be the same distance from an edge
  12338. of the screen and adjusting them as necessary.
  12339. 3.3
  12340. We found this was much easier than transcribing even simple shapes by
  12341. eye, as it was hard to get the proportions right that way. It was also
  12342. much quicker than drawing a grid and transcribing coordinates from that.
  12343. Laurie van Someren, Aleph One Ltd
  12344. 3.3
  12345. •   Interdictor Flight Recorder! − It is possible to fly the plane on
  12346. your own, run or even record a demo flight. This can be done by altering
  12347. the !Run file in the !Interdictor directory. On the bottom line of this
  12348. directory is the ‘fly’ command. Its permutations are as follows:
  12349. 3.3
  12350. fly       (just fly the plane as usual)
  12351. 3.3
  12352. fly playback <filename>   (replay a demo flight from a file)
  12353. 3.3
  12354. fly record <filename>      (record the flight to a file)
  12355. 3.3
  12356. If you want an example of how this works, you can look at the !RunDemo
  12357. file in the Interdictor direct-ory. This file runs the demo file call
  12358. DemoFlight.
  12359. 3.3
  12360. •   Low Batteries? One reader noticed that after 15 months, his
  12361. Archimedes’ configuration settings began to change inexplicably e.g. the
  12362. loss of all disc drive icons in the desktop. Eventually, after various
  12363. problems (e.g. the Beebug Serial Link buffer setting kept changing) the
  12364. whole system finally froze. However, the problem was fully resolved by
  12365. replac-ing the batteries. So be warned. (Acorn recommend replacement
  12366. every 12 months.)
  12367. 3.3
  12368. •   MS-DOS Hard Disc Partitions − The easiest way of getting two hard
  12369. disc partitions for the PC Emulator is to get version 1.33, which can be
  12370. downloaded from the Archive BBS or SID. Alternatively send us a donation
  12371. to our charity pot along with an 800k formatted 3.5“ disc.
  12372. 3.3
  12373. •   Multi-tasking First Word Plus? If you rename the !Run file in the
  12374. !1stWord+ directory to !Boot then First Word Plus becomes multitasking.
  12375. Unfortunately, you cannot reach the disc, palette or task icons.
  12376. 3.3
  12377. •   Noisy Fans 1 − If you have a fan in your Archim-edes, you should not
  12378. disconnect it. The reason for this is that the fan will then be blocking
  12379. up the air vent and so the computer’s PSU will operate at too high a
  12380. temperature. If you want to reduce the noise of the fan, you should
  12381. either completely remove the fan or refer to the following hint.
  12382. 3.3
  12383. •   Noisy Fans 2 − I have looked at the physical design of the Archi
  12384. medes PSU and done a few temperature measurements and it is my belief
  12385. that you ought to have a fan fitted and working. So, what can you do to
  12386. reduce the annoying noise of the fans? Well, we have several Archimidi
  12387. here and the noise drove us to distraction so, being hardware oriented,
  12388. I looked at the infernal (sic) fan. Yes, I have found a way of shutting
  12389. it up, but before you get too excited, allow me to explain a little
  12390. more.
  12391. 3.3
  12392. These fans are most certainly not your average Scalectrix car 12volt
  12393. motor with a set of plastic blades stuck on the front! In fact, we
  12394. couldn’t have wished for a better headache − these fans (of which we’ve
  12395. even found two different manufacturers so far) consist of a transistor
  12396. circuit driving a coil assembly that is alternately fluxing a permanent
  12397. magnet within the plastic rotor. At the same time, the rotor is having
  12398. its rotational speed monitored by a hall effect switch, busily counting
  12399. the revolutions! How are we going to slow that down? The answer we came
  12400. up with was a small transistor circuit of our own that takes the 12v
  12401. D.C. input and feeds to the fan a suitably pulsed supply that allows the
  12402. fan to start but not reach full speed. Cunning, eh?!
  12403. 3.3
  12404. Yes, we had to make two slightly different versions of our circuit, as
  12405. the fans were not the same electrically. We’ll let you know how they get
  12406. on as we’re still testing them, but there no problems so far. Ray
  12407. Maidstone.
  12408. 3.3
  12409. If you want more technical info, drop Ray a line via the Archive office.
  12410. Ed.
  12411. 3.3
  12412. •   Presenter II Stacked Bar option − If one of the data sets (columns)
  12413. contains several NULL (0 or zero) entries then on the display, some of
  12414. the stack-ed bar may be displaced vertically downwards. This is easily
  12415. corrected by replacing the NULL entry with a very small value. E.g., if
  12416. the data maximum is 100 then a value of 0.1 or 0.05 will do the trick.
  12417. 3.3
  12418. •   Second floppy disk drive − If you want a second disc drive and don’t
  12419. need the a new front fascia for two drives, you can install an NEC 1036A
  12420. into the Archimedes, which can be obtained for around £50.
  12421. 3.3
  12422. You will also need to buy some ribbon cable, power leads and extra plugs
  12423. for the leads. Don’t forget to set the drive to operate as drive 1 and
  12424. to *Configure Floppies 2 on the Archimedes.
  12425. 3.3
  12426.  
  12427. • 80k of RMA and rising!  RMA stands for Relocatable Module Area.  In
  12428. English, this is the area of memory which some parts of the operating
  12429. system (modules) use as work space.  This is why when you first
  12430. initialise your computer you will find that your RMA takes over 80k of
  12431. memory.  For those of you who are curious, here is a guide to the memory
  12432. each module claims on power up:
  12433. 3.04
  12434.    Module      Workspace (bytes)
  12435. 3.04
  12436.    FileSwitch      2400
  12437. 3.04
  12438.    Desktop      528
  12439. 3.04
  12440.    SystemDevices   288
  12441. 3.04
  12442.    BBCEconet      80
  12443. 3.04
  12444.    InternationalKeyboard   528
  12445. 3.04
  12446.    Debugger      448
  12447. 3.04
  12448.    SoundChannels   8464
  12449. 3.04
  12450.    Sound Scheduler   8208
  12451. 3.04
  12452.    WaveSynth      1760
  12453. 3.04
  12454.    StringLib      8576
  12455. 3.04
  12456.    Perussion      8800
  12457. 3.04
  12458.    SpriteExtend   1296
  12459. 3.04
  12460.    Draw      272
  12461. 3.04
  12462.    FontManager   2832
  12463. 3.04
  12464.    WindowManager   7920
  12465. 3.04
  12466.    NetStatus      16
  12467. 3.04
  12468.    Podule      208
  12469. 3.04
  12470.    ADFS      656
  12471. 3.04
  12472.    FileCore%ADFS   12,464
  12473. 3.04
  12474.    HourGlass      1952
  12475. 3.04
  12476.    TaskManager   3760
  12477. 3.04
  12478.    PaletteUtil      3632
  12479. 3.04
  12480.    Filer      4993
  12481. 3.04
  12482.    ADFSFiler      2336
  12483. 3.04
  12484.    ShellCLI      1872
  12485. 3.04
  12486.    Total      84308
  12487. 3.04
  12488. RMA is also used to contain WIMP sprites (especially application icons
  12489. stored in their !Sprite files) and relocatable modules, which add extra
  12490. facilities to the ROM based operating system e.g. 65Tube provides BBC
  12491. emulation.  This means that as the Archimedes ‘sees’ and loads more
  12492. applications/modules the memory acquired by the RMA grows and can quite
  12493. easily reach 300k plus!
  12494. 3.04
  12495. Since there are several uses for the RMA, there are several ways of
  12496. reducing the memory it requires:
  12497. 3.04
  12498. a) Remove individual modules using the *RMKill command e.g. *RMKill
  12499. Percussion − this will only temporarily remove the facilities provided
  12500. by a module.
  12501. 3.04
  12502. b) Unplug unwanted modules using the *RMUnplug command e.g. *RMUnplug
  12503. BBCEconet − this will permanently remove the facilities provided by an
  12504. operating system ROM module − so if you don’t have Econet or don’t use
  12505. the Debugger then you can unplug the relevant modules and release their
  12506. workspace.  Note, you can reinvoke the facilities of a module by using
  12507. the *RMReInit command.
  12508. 3.04
  12509. c) Use the following BASIC V program to clear the RMA sprite area:
  12510. 3.04
  12511.    program segment missing
  12512. 3.04
  12513. d) If you have finished processing and saved all your work you could
  12514. press <ctrl-break> but this is rather drastic.
  12515. 3.04
  12516. • ArcTerm update − Hugo Fiennes has updated ArcTerm v6.01 so that it
  12517. works properly with the CET and CET+ standards.  An upgrade can be
  12518. obtained direct from Hugo Fiennes free of charge.
  12519. 3.04
  12520. • Arthur desktop − If any of you have changed over to RISC-OS but are
  12521. pining for the old Arthur desktop (!) then see if you can get hold of a
  12522. copy of Brainsoft’s Disk Transfer program.  This provides a modified ram
  12523. copy of the desktop with extra features added.  You will then be able to
  12524. access your old desktop diaries, etc.  Dave Woods.
  12525. 3.04
  12526. • ASCII BASIC programs − BASIC V can load and renumber an untokenised
  12527. text file with the *BASIC -load <filename> command (the same applies
  12528. with the -chain option).  Thus you don’t really need a BASIC to ASCII
  12529. convertor; you could just keep all your BASIC programs in ASCII, at
  12530. least while you develop them, and still be able to edit them using a
  12531. text editor, e.g. TWIN or !Edit.
  12532. 3.04
  12533. • Auto-booting applications − If you want a RISC-OS application to load
  12534. or run as soon as the disc is inserted then you should modify the !Boot
  12535. file in the application to execute the !Run file i.e. add the command
  12536. *Run <Obey$Dir>.!Run in the !Boot file.  This technique could be used,
  12537. for example, to automatically load the BASIC Editor when a development
  12538. disc is inserted.
  12539. 3.04
  12540. • Break key action − You can set the action of the <break> key using the
  12541. *FX 247,<n> command.  The value byte <n> alters <break> and modifiers of
  12542. it as follows:
  12543. 3.04
  12544.    Bits   Key Combination
  12545. 3.04
  12546.    0.1   <break>
  12547. 3.04
  12548.    2.3   <shift-break>
  12549. 3.04
  12550.    4.5   <ctrl-break>
  12551. 3.04
  12552.    6.7   <ctrl-shift-break>
  12553. 3.04
  12554. Each two bit number may take on one of these values:
  12555. 3.04
  12556.    Value   Effect
  12557. 3.04
  12558.    00   Act as <reset> key
  12559. 3.04
  12560.    01   Act as <escape> key
  12561. 3.04
  12562.    10   No effect
  12563. 3.04
  12564.    11   Undefined
  12565. 3.04
  12566. The default is *FX 247,1 which makes <break> act as if it were <escape>
  12567. and all other combinations cause a reset.
  12568. 3.04
  12569. • Desktop grey scale?  If you modify colours 0 or 7 (white or black)
  12570. using the desktop palette utility then the palette application will
  12571. attempt to interpolate the colours in between i.e. colours 1-6.  Try it
  12572. and see!
  12573. 3.04
  12574. • Don’t move your mouse!  Whilst waiting for a program to complete a
  12575. lengthy process (e.g. when the hourglass is on) it is best not to move
  12576. the mouse as keeping track of the mouse movements takes up processor
  12577. time.
  12578. 3.04
  12579. • Faster BASIC SWI’s − When using the SYS command within a BASIC V
  12580. program, it is quicker to use a number instead of a string.  e.g. SYS6
  12581. instead of SYS “OS_Byte”.  However, the best way to obtain the number
  12582. values is to use a BASIC variable and “OS_SWINumberFromString”.  This
  12583. increases speed while maintaining machine independence and readability. 
  12584. For example:
  12585. 3.04
  12586.    program segment missing
  12587. 3.04
  12588. • Insert/overwrite with !Edit − It is possible to toggle between insert
  12589. and overwrite mode in Edit by pressing <shift-f1>.
  12590. 3.04
  12591. • Mouse step − you can set the sensitivity of your mouse by using the
  12592. BASIC V MOUSE STEP command e.g. MOUSE STEP 4 means that the pointer will
  12593. move 4 O.S. pixels for every mouse pulse.  The ‘sensitivity parameter’
  12594. can take a zero or even a negative value, so that you can freeze the
  12595. mouse or even invert it!
  12596. 3.04
  12597. • Multiple entry PROC’s and FNs − You can have multiple entries to
  12598. procedures and functions, although it may not be good programming style. 
  12599. This is because lines beginning with DEF are not executed, so you can
  12600. have further DEFs within the body of a procedure/function, and enter at
  12601. these points with an appropriate call − this might be particularly
  12602. useful to have a first entry, set up some default parameters, and then
  12603. have entry to override them:
  12604. 3.04
  12605.    program segment missing
  12606. 3.04
  12607. • O.S. case sensitivity − Contrary to what has been said in the past,
  12608. the operating system is almost entirely case-insensitive, unlike BASIC,
  12609. and although the case of filenames and variable names is preserved it is
  12610. not significant.  Quotes are also generally unnecessary except when
  12611. including a space in a parameter.
  12612. 3.04
  12613. • Removing recursive directories (cont’d) − If you accidentally copy a
  12614. directory into itself then the best way to tidy the disc up is to create
  12615. a RAM disc and move the unwanted files into it (you can move a file by
  12616. dragging it into the filer window while holding the <shift> button
  12617. down).
  12618. 3.04
  12619. • Time for function keys − Function key strings are just treated as OS
  12620. variables called Key$<n>, where <n> is the key number.  This means that
  12621. all the commands relate to system variables can be used with function
  12622. keys e.g. *ShowKey$ will display key definitions.  *SetMacro Key$0
  12623. <Sys$Time> will make <f0> display the time and so on.
  12624. 3.04
  12625. • Using *GOS − You can use the *GOS command from the desktop to prevent
  12626. returning if you accidentally hit the <return> key.  Once you have
  12627. finished typing your *commands you can use the •Quit command to go back
  12628. to the desktop.
  12629. 3.04
  12630.  
  12631. •   Window resizing bugs/errors − The bug in Interactive help Archive
  12632. 2.11 page 8 is not a bug but a result of !Help setting a window work
  12633. area extent in less than a multiple of four. The program is in C so I
  12634. can’t edit it. I discovered this when writing my own software. When a
  12635. window was stretched to its full extent it would not grow smaller in the
  12636. y direction until you moved in to the left. R.D.
  12637.  
  12638. •   *WIPE with mouse − In BASIC, (or at the operating system prompt for
  12639. that matter. Ed.) if you have the pointer ON (*POINTER) and do *WIPE *,
  12640. a mouse pointer appears enabling you to use <se-lect> to delete the file
  12641. and <menu> or <adjust> to keep the file.
  12642. 3.5
  12643. •   Alerion cheat  − For those who have the RISC-OS version of Alerion,
  12644. you can select the wave you wish to play by pressing the letters <A> to
  12645. <O> while on the title screen.
  12646. 3.5
  12647. •   BASIC Editor bugs − There is a bug or two in the Basic Editor v1.00
  12648. that comes on the Applications Disc 2. If you exactly fill the first
  12649. line so that the cursor jumps to the next line, and then press return,
  12650. the screen looks something like this:
  12651. 3.5
  12652. 10 REM This is meant to be right over to the edge
  12653. 3.5
  12654. 11 C
  12655. 3.5
  12656. 20 xxxxxxxxxxxx
  12657. 3.5
  12658. 30 xxxx
  12659. 3.5
  12660. If you then press the <page down> key, the comp-uter will freeze.
  12661. 3.5
  12662. Another bug, whose circumstances cannot be so readily repeated, occurs
  12663. when pressing the <cursor down> key causing the program to shoot off the
  12664. top of the screen, and nothing will bring it back again.
  12665. 3.5
  12666. Both of these are ‘mild’ bugs because pressing <reset> followed by
  12667. typing *BASIC and OLD and EDIT restores everything back to it original
  12668. state.
  12669. 3.5
  12670. •   BASIC first please − If you want your computer to start up in BASIC
  12671. instead of the desktop, use *CON. LAN. 4 and then do a <ctrl-break>.
  12672. This also means that the full computer memory is available to your
  12673. program. If you go to BASIC with <f12> to get a star command and then
  12674. typing BASIC, you only get the memory available that has been allocated
  12675. to the next application under the task display (651516 bytes). The
  12676. reason for this is that BASIC is being run as the next task within the
  12677. desktop environment. This can be seen by typing QUIT which will drop you
  12678. back into the desktop with everything as it was before.
  12679. 3.5
  12680. The other way to get the full memory available is to press <shift-ctrl-
  12681. f12> which will drop you out of the desktop completely, closing all
  12682. tasks. This drops you into the operating system, so typing BASIC and
  12683. then QUIT brings you back to the operating system prompt, not into the
  12684. desktop.
  12685. 3.5
  12686. (This is one of those things which, according to Adrian is “obvious”,
  12687. but to those of us who never reads manuals, it is news! So, the next
  12688. time you discover something which someone else thinks is “obvious”, send
  12689. it in to us as an H&T. Ed.)
  12690. 3.5
  12691. •   CTRLing VDU scrolling − You can use the <scroll lock> key on the
  12692. Archimedes to stop the computer printing (either to the screen or
  12693. printer). Another method of doing this is to hold down the <shift> and
  12694. <ctrl> keys. However, if you just hold the <ctrl> key down then you can
  12695. slow down the speed of printing to about a 20th of it original speed. 
  12696. 3.5
  12697. •   Database routine − If you’ve written a database in BASIC e.g. an
  12698. address book, it can be difficult to find a name unless you stick to a
  12699. format where all entries are in upper case, or lower case apart from the
  12700. initial letters. This little routine which uses 104 bytes is the
  12701. solution. As well as accepting upper or lower case it also will accept
  12702. the character “#” as a single character wildcard .
  12703. 3.5
  12704. It is identical to the BASIC command.
  12705. 3.5
  12706. INSTR(string,substring,start of search)
  12707. 3.5
  12708. Except the variables A%, $B% and $C% are declared before X=USR(code) is
  12709. called, i.e.
  12710. 3.5
  12711. $B%=“main string”
  12712. 3.5
  12713. $C%=“substring”
  12714. 3.5
  12715. A%=start of search
  12716. 3.5
  12717. X=USR(code)
  12718. 3.5
  12719. There is an example program with the listing.
  12720. 3.5
  12721. 160 DEFPROCass
  12722. 3.5
  12723. 170 FORopt=0TO3 STEP3
  12724. 3.5
  12725. 180    P%=code
  12726. 3.5
  12727. 190   [ OPT opt
  12728. 3.5
  12729. 200   STMFD R13!,{r1-r12 ,R14} ;store
  12730. 3.5
  12731.  registers. not R0
  12732. 3.5
  12733. 210   MOV R5,R0      ;start of search
  12734. 3.5
  12735. 220   MOV R0,#0    ;reset R0 (A%) for
  12736. 3.5
  12737.  return
  12738. 3.5
  12739. 230   LDRB R7,[R2,#0] ;load R7 with
  12740. 3.5
  12741.  first byte of $C%
  12742. 3.5
  12743. 240   CMP R7,#13   ;is it a CR?
  12744. 3.5
  12745. 250   BEQ end      ;i.e. null sub-
  12746. 3.5
  12747. string. exit to BASIC
  12748. 3.5
  12749. 260
  12750. 3.5
  12751. 270   .nomatch
  12752. 3.5
  12753. 280   MOV R4,#0  ;initialise counters
  12754. 3.5
  12755. 290   MOV R3,#0
  12756. 3.5
  12757. 300   .nextchar
  12758. 3.5
  12759. 310   LDRB R6,[R1,R5]  ;get byte of
  12760. 3.5
  12761.  string
  12762. 3.5
  12763. 320   CMP R6,#13   ;is it CR ie end
  12764. 3.5
  12765.  of string
  12766. 3.5
  12767. 330   BEQ end      ;if yes, substring
  12768. 3.5
  12769.  not found. exit
  12770. 3.5
  12771. 340   AND R6,R6,#95   ;AND to ignore
  12772. 3.5
  12773.  case
  12774. 3.5
  12775. 350   LDRB R7,[R2,R4] ;first byte of
  12776. 3.5
  12777.  substring
  12778. 3.5
  12779. 360   CMP R7,#13      ;is it a CR?
  12780. 3.5
  12781. 370   SUBEQ R0,R5,R3  ;yes i.e. end
  12782. 3.5
  12783.  of substring
  12784. 3.5
  12785. 380                   ;R5-R3 gives
  12786. 3.5
  12787.  position in string
  12788. 3.5
  12789. 390   ADDEQ R0,R0,#1  ;plus 1. First
  12790. 3.5
  12791.  char=0
  12792. 3.5
  12793. 400   BEQ end         ; and exit
  12794. 3.5
  12795. 410                  
  12796. 3.5
  12797. 420   AND R7,R7,#95   ;AND to ignore
  12798. 3.5
  12799.  case
  12800. 3.5
  12801. 430   ADD R5,R5,#1    ;increment
  12802. 3.5
  12803.  counters for next chars
  12804. 3.5
  12805. 440   ADD R4,R4,#1
  12806. 3.5
  12807. 450   CMP R7,#3       ;is it a hash?
  12808. 3.5
  12809.  If so make equal
  12810. 3.5
  12811. 460   MOVEQ R6,R7
  12812. 3.5
  12813. 470   CMP R6,R7      ;ARE bytes equal
  12814. 3.5
  12815. 480   ADDEQ R3,R3,#1  ;yes − get next
  12816. 3.5
  12817.  sub string char
  12818. 3.5
  12819. 490   BEQ nextchar
  12820. 3.5
  12821. 500   BNE nomatch     ;no try next
  12822. 3.5
  12823.  string char
  12824. 3.5
  12825. 510   .end
  12826. 3.5
  12827. 520   LDMFD R13!,{r1-r12 ,R15};restore
  12828. 3.5
  12829. registers. R0 has INSTR
  12830. 3.5
  12831. 530   ]
  12832. 3.5
  12833. 540 NEXT
  12834. 3.5
  12835. 550 ENDPROC
  12836. 3.5
  12837. •   Disappearing menus − After selecting an option on a menu, the menu
  12838. disappears. To prevent this: instead of using <select> to select option,
  12839. use <adjust>, and the menu will then stay on the screen.
  12840. 3.5
  12841. •   Drawing with Outline fonts - If you possess Acorn DTP, you can use
  12842. the !FontEd public domain program to create !Draw paths of the
  12843. individual letters. This is done by dragging the character in the main
  12844. !FontEd window into the !Draw document window. Once transferred, the
  12845. letter can be manip-ulated just like any other drawing e.g. rotated,
  12846. stret-ched, filled, etc. With a little patience, some very effective
  12847. titles can be created.
  12848. 3.5
  12849. •   DTP memory − A couple of hints to give extra memory when using Acorn
  12850. DTP with a 1M machine: load the printer driver first and then quit
  12851. before entering DTP. Only the modules are used for printing, which are
  12852. left installed after you quit. Secondly, the use of screen mode 1 uses
  12853. only 24k of memory and since it is a four colour mode, it gives a better
  12854. grey scale than Mode 0.
  12855. 3.5
  12856. •   E-Type bug − There is a bug in ‘All Tracks’ option of E-Type. If you
  12857. press hard on the brakes when the time reaches 0:01 the program
  12858. sometimes goes bonkers and when you are placed on the new track, your
  12859. Trip Score increases.
  12860. 3.5
  12861. •   External ST506 drives − If you add an external hard drive to an old
  12862. 440 or 310, you may find that the whole system dies completely for no
  12863. apparent reason. The problem is that if the external drive is powered up
  12864. before the computer, a small voltage can be produced within the computer
  12865. so when the power suplly on the computer tries to power up, it sees this
  12866. voltage, panics and shuts down again! The simple solution is to power up
  12867. the computer first and then the external drive.
  12868. 3.5
  12869. When switching off, work on the “last in, first out” principle and
  12870. switch off the drive first. This is good practice since, if the drive is
  12871. left switched on, as the computer powers down, extraneous signals on the
  12872. drive’s data and control lines could conceivably be interpreted as
  12873. something nasty like, “ Please wipe track 0, sector 0” and you end up
  12874. with a “Bad Free Space Map”! (I’m sure that is Somebody’s Law.)
  12875. 3.5
  12876. •   Interdictor Cheat − It is possible to alter your landing pad in
  12877. Interdictor. Edit StateSave via !Edit. Go down to the 10th number and
  12878. alter it. Note that Landing pad 2 is actually Landing pad 1 and so alter
  12879. the 10th number to a 1 and so on. Also note that there are 7 runways,
  12880. the 7th being known as the number 6. This might sound confusing but
  12881. really it’s not!
  12882. 3.5
  12883. •   Large hard drives on A410/1? − Someone asked us to find out whether
  12884. it was possible to put hard drives with more than 8 heads onto an A410/
  12885. 1. All we have been able to find out is that, to get the extra head
  12886. select line, you need to change links LK12 and LK13. Whether the
  12887. software will cope, we do not know. If anyone has any success with it,
  12888. perhaps they would let us know.
  12889. 3.5
  12890. •   Virus protection − If you are passing discs around, especially PD
  12891. discs, guard yourself against the virus. When you receive or pass on a
  12892. disc, you run the risk of your machine picking or up a virus or logic
  12893. bomb.
  12894. 3.5
  12895. Passing on files: Format an unused disc and copy only the files you wish
  12896. to send. Alternatively, wipe the disc (*Wipe * FR~C), copy the files and
  12897. run my disc wiping program (see below). This is needed because deleting
  12898. a file does not erase the data on the disc; it just causes the computer
  12899. to forget about it. The data can be retrieved by anyone with a disc
  12900. sector editor, so run the program if you want to thoroughly scrub the
  12901. unused parts of the disc.
  12902. 3.5
  12903. Receiving files: Copy across only those files which you need. Try not to
  12904. use the desktop as some logic bombs can sit in an application’s !Boot
  12905. file and spring out at you when you open their directory viewer.* After
  12906. copying, the original disc should be cleared by reformatting.
  12907. 3.5
  12908.  10 REM >Eradicate
  12909. 3.5
  12910.  20 REM Guards against the Virus and
  12911. 3.5
  12912.  accidental giveaways of data
  12913. 3.5
  12914.  30 REM Erases totally the unused parts
  12915. 3.5
  12916.  of a disc
  12917. 3.5
  12918.  40 REM PUBLIC DOMAIN by Sandie Goh
  12919. 3.5
  12920.  50 REM Version 1.21 (20-Sep-1989)
  12921. 3.5
  12922.  60 :
  12923. 3.5
  12924.  70 MODE 3:OFF:DIM blankspace 409600
  12925. 3.5
  12926.  80 PRINT“Disc Eradicator”
  12927. 3.5
  12928.  90 PRINT“===============”‘
  12929. 3.5
  12930. 100 PRINT“PUBLIC DOMAIN by Sandie Goh,
  12931. 3.5
  12932. Version 1.21 (20-Sep-1989)“‘
  12933. 3.5
  12934. 110 PRINT“Erases totally the unused
  12935. 3.5
  12936.  parts of a disc.“
  12937. 3.5
  12938. 120 PRINT“HELPS guard against viruses,
  12939. 3.5
  12940.  logic bombs etc.“‘
  12941. 3.5
  12942. 130 PRINT“Insert disc to be cleaned in
  12943. 3.5
  12944.  drive 0 and press a key.“‘
  12945. 3.5
  12946. 140 *FX 15,1
  12947. 3.5
  12948. 150 IF GET
  12949. 3.5
  12950. 160 PRINT“Compacting, to collect free
  12951. 3.5
  12952.  space into a single block.“
  12953. 3.5
  12954. 170 REPEAT
  12955. 3.5
  12956. 180   *COMPACT 0
  12957. 3.5
  12958. 190   SYS“ADFS_FreeSpace”,“0” TO total,
  12959. 3.5
  12960.  biggest
  12961. 3.5
  12962. 200 UNTIL biggest=total
  12963. 3.5
  12964. 210 PRINT“Saving dummy files into the
  12965. 3.5
  12966.  free space to wipe anything there.“
  12967. 3.5
  12968. 220 REM Use unlikely filenames to avoid
  12969. 3.5
  12970.  clashes
  12971. 3.5
  12972. 230 IF biggest>409600 THEN
  12973. 3.5
  12974. 240   OSCLI (“SAVE ZZDelONN12 ”+STR$~
  12975. 3.5
  12976. blankspace+“ +64000”)
  12977. 3.5
  12978. 250   biggest=biggest-409600
  12979. 3.5
  12980. 260 ENDIF
  12981. 3.5
  12982. 270 OSCLI (“SAVE XXDelONN12 ”+STR$~
  12983. 3.5
  12984. blankspace+“ +”+STR$~biggest)
  12985. 3.5
  12986. 280 PRINT“Deleting the dummy files to
  12987. 3.5
  12988.  release the space.“‘
  12989. 3.5
  12990. 290 *REMOVE ZZDelONN12
  12991. 3.5
  12992. 300 *DELETE XXDelONN12
  12993. 3.5
  12994. 310 PRINT“I now pronounce this disc
  12995. 3.5
  12996.  clean.“
  12997. 3.5
  12998. *If you don’t believe me, I was myself the victim of a booby-trapped
  12999. disc. After mounting a disc I picked up from a friend, I copied its
  13000. contents across to my hard disc, only to find that it (the winchester)
  13001. was now blank! Believing the problem to be a bug in the desktop or
  13002. chance disc failure, I restored the hard disc and tried again − the same
  13003. thing happened again, but this time when I did a *Compact 4.
  13004. 3.5
  13005. I tried everything and was just about to give up and complain to Acorn
  13006. when a friend phoned me with the same problem. It turns out that he too
  13007. had a copy of the disc I had picked up and I immediately became
  13008. suspicious. Further research showed that the disc contained an invisible
  13009. program which sat in the machine waiting for an opportune moment, then
  13010. zapped the Winchester with a *Wipe :4.* FR~C.
  13011. 3.5
  13012. The subtlety of the program makes it even more deadly − the “error”
  13013. occurs when you write to the hard disc using the desktop, so you are
  13014. lead to think (as I was) that a bug or disc error is responsible. So be
  13015. warned. Guard against the virus.
  13016. 3.5
  13017.  
  13018. •   !chars − which is available as !1stchars with FWPlus version 2 and
  13019. is also available on SID + Archive BBS + various PD discs, can be used
  13020. for “mousing” text into !Draw applications.
  13021. 3.6
  13022. •   !Draw − You can use the cursor keys for fine positioning when
  13023. drawing Bezier curves or lines.
  13024. 3.6
  13025. •   !Madness − I was always very disappointed with this Demo − until I
  13026. looked at the !RunImage file and found a variable called madspeed% −
  13027. guess what changing it to 1 does? Rob Davison
  13028. 3.6
  13029. •   !system on floppies − Those of you without hard discs will have
  13030. !system on various of your floppies. The trouble is that when you change
  13031. to other discs, even if they have !system on them, you will be asked to
  13032. insert the disc containing !system that the com-puter saw first of all.
  13033. To get round this, double click on !system on the current disc before
  13034. trying to launch applications from the disc.
  13035. 3.6
  13036. •   Art Nouveau − Fills approximating to graduated, logarithmic,
  13037. circular etc can easily be ‘designed’ and saved to disc. For example:
  13038. 3.6
  13039. Approx circle fill − Set a small grid size and switch it on. Draw
  13040. several concentric filled circles, selecting each shade as you go. Smear
  13041. the edges with ‘colour merge’ if you don’t want the bands of colour to
  13042. show. Pick it up as a brush and use with: brush, effects1, distort x (or
  13043. y). Some of the effect that Pro-Artisan and Atelier have as features can
  13044. be cobbled together with a little effort using Art Nouveau (at half the
  13045. price!). D P Allen.
  13046. 3.6
  13047. •   Beware the SUM! − If you rely on indentation in your programs to
  13048. keep a check on the structure of the various loops, beware that SUM(A())
  13049. will cause an extra indent. Is there any way round this? Fred Hartley,
  13050. Hayes.
  13051. 3.6
  13052. •   Booting − When booting the Archimedes up it is tempting to just
  13053. refer to applications assuming their path starts at the root ($). e.g.
  13054. !Edit − can be installed on the desktop using just !Edit in a boot file.
  13055. 3.6
  13056. However, this will not ensure the appropriate system variable is set up
  13057. with the full pathname. Again using !Edit as example, you would get just
  13058. − Edit$Dir = !Edit
  13059. 3.6
  13060. To avoid this put the full name in the desktop boot file, e.g.
  13061. 3.6
  13062. *Run adfs:HardDisc.$.!Edit
  13063. 3.6
  13064. Only of much use if, like me, you decide to set the directory yourself
  13065. while using Desktop (despite what Acorn advise!). Ian Pollock
  13066. 3.6
  13067. •   Graph-Box − superb program but I find it very annoying that it
  13068. ‘dies’ when you close the window. The following changes will give
  13069. Graphbox an icon on the iconbar. It will only ‘die’ when you click
  13070. <menu> followed by ‘quit’ as Edit and Draw etc. This lets you clear some
  13071. valuable desktop space to write a letter or whatever. while still having
  13072. Graphbox available on the icon bar.
  13073. 3.6
  13074. *BASIC
  13075. 3.6
  13076. LOAD “!GraphBox.!RunImage”
  13077. 3.6
  13078.  220 WHEN 3:PROCclosew(!q%):IF!q%=
  13079. 3.6
  13080. w_graphbox% THEN mainclosed%=TRUE
  13081. 3.6
  13082.  560 quit%=FALSE:mainclosed%=FALSE
  13083. 3.6
  13084. 4590 WHEN0:PROCclosew(w_graphbox%)
  13085. 3.6
  13086. :quit%=TRUE
  13087. 3.6
  13088. 5291 Icon%=sprites%:!Icon%=TRUE:
  13089. 3.6
  13090. DIM Spritename% 14:$Spritename%=
  13091. 3.6
  13092. “!graphbox”:Icon%!4=0:Icon%!8=0:
  13093. 3.6
  13094. Icon%!12=64:Icon%!16=68:Icon%!20=
  13095. 3.6
  13096. (&311A OR (7<<28))
  13097. 3.6
  13098. 5292 Icon%!24=Spritename%:Icon%!28=1:
  13099. 3.6
  13100. Icon%!32=12:SYS “Wimp_CreateIcon”
  13101. 3.6
  13102. ,,Icon% TO graph_iconbar%
  13103. 3.6
  13104. 5445 READ t$:m_iconbar%=FNcrmenu(t$)
  13105. 3.6
  13106. 5447 DATA “#Graphbox,Info>w_pinfo%,
  13107. 3.6
  13108. Quit“
  13109. 3.6
  13110. 5710 REM quit%=TRUE
  13111. 3.6
  13112. 6395 IF mh%=-2 AND mb%=4 OR mb%=1024
  13113. 3.6
  13114.  AND mi%=graph_icnbar% THEN PROCgetw
  13115. 3.6
  13116. (w_graphbox%):PROCfront(w_graphbox%
  13117. 3.6
  13118. ,420,150):mainclosed%=FALSE
  13119. 3.6
  13120. 7375 WHEN-2:IFmi%=graph_icnbar% THEN
  13121. 3.6
  13122.  PROCpop(m_iconbar%,-1)
  13123. 3.6
  13124. 8219 IF menu%=m_iconbar% my%+=64
  13125. 3.6
  13126. 8545 WHEN m_iconbar%:IF !mlist%=1
  13127. 3.6
  13128.  THEN quit%=TRUE
  13129. 3.6
  13130. 16505 IFmainclosed%=TRUE PROCfront
  13131. 3.6
  13132. (w_graphbox%,420,150):
  13133. 3.6
  13134. mainclosed%=FALSE
  13135. 3.6
  13136. SAVE “!GraphBox.!RunImage”
  13137. 3.6
  13138. NOTE: Graphbox claims what you have in your next slot up to a max of
  13139. 640k but as the program needs only a minimum of around 200k to run,
  13140. there’s space for a very big graph! Before loading Graphbox, drag the
  13141. ‘next’ slot down to about 330k to free some more space. You can edit the
  13142. !run file and change the -max to reconfigure it more permanently. Rob
  13143. Davison
  13144. 3.6
  13145. •   Installing Alerion − Here are the steps you must take in order to
  13146. install RISC-OS Alerion onto your hard disc:
  13147. 3.6
  13148. (i) create a RAM disc with at least 432k
  13149. 3.6
  13150. (ii) copy the !Alerion directory into the RAM disc
  13151. 3.6
  13152. (iii) alter the RAM disc !Boot file in the !Alerion directory so that it
  13153. reads:
  13154. 3.6
  13155. IconSprites <Obey$Dir>.!Sprites
  13156. 3.6
  13157. (iv) also alter the !Run file so that reads:
  13158. 3.6
  13159. Set Alerion$Dir <Obey$Dir>
  13160. 3.6
  13161. RMClear
  13162. 3.6
  13163. RMLoad MemAlloc
  13164. 3.6
  13165. RMSize 320k
  13166. 3.6
  13167. ScreenSize 160k
  13168. 3.6
  13169. RMKill MemAlloc
  13170. 3.6
  13171. Run <Alerion$Dir>.!RunImage
  13172. 3.6
  13173. (v) copy the !Alerion directory from the RAM disc to your hard disc.
  13174. 3.6
  13175. •   Rounding Errors − Try typing P.STR$(0.6) in BASIC. If you are
  13176. putting the string of a variable into a writeable menu option when
  13177. programming a wimp system and this rounding error comes up, the
  13178. resulting string can overwrite some of the data structure for your menu.
  13179. The result is often an “Abort on data transfer”! This can be quite hard
  13180. to track down so be careful. DIMming the block to 5 bytes will stop a
  13181. crash but will leave the user with a 0.6666666669 to edit instead of
  13182. 0.6. This can be a bit disconcerting. To solve it, set @% to round to
  13183. e.g. 2 decimal places before doing the STR$ and reset @% afterwards −
  13184. see 400 series BASIC Guide pp277-278 for details. Rob Davison
  13185. 3.6
  13186. •   Screen modes & memory claiming − If your program has a proper RISC-
  13187. OS front end, it can change modes without worrying about screen memory.
  13188. If there is enough in ‘free’ and ‘next’ it will be shunted to screen
  13189. memory and the mode selected. Rob Davison
  13190. 3.6
  13191. •   Synthesiser MIDI modes − The answer to Gerald Fitton’s problem
  13192. (issue 2.12 p 18) that his Korg synthesiser plays all channels no matter
  13193. what he does, is that his synthesiser is not in the correct MIDI mode.
  13194. 3.6
  13195. All MIDI devices operate under modes. These are as below:
  13196. 3.6
  13197.    MIDI mode 1:   OMNI On/Poly
  13198. 3.6
  13199.    MIDI mode 2:   OMNI On/Mono
  13200. 3.6
  13201.    MIDI mode 3:   OMNI Off/Poly
  13202. 3.6
  13203.    MIDI mode 4:   OMNI Off/Mono
  13204. 3.6
  13205. OMNI On/Off selects whether the device receives on all MIDI channels
  13206. (OMNI On) or only on one MIDI channel (OMNI Off). Poly means that the
  13207. device will be able to play two or more notes at the same time and Mono
  13208. means that it will only be able to play one at a time. The Korg will
  13209. almost certainly be in MIDI mode 1, which is how most synthesisers are
  13210. set up when they are sent from the shop. The answer is to change the
  13211. MIDI mode to 3 or 4 and to set the Korg to receive on the same MIDI
  13212. channel as Maestro is sending.
  13213. 3.6
  13214. •   Wimp Resizing − I have written a program which needs a large area of
  13215. memory as store for data. The program works in the desktop and claims
  13216. memory via SYS “Wimp_SlotSize”. Initially, I used the BASIC statement
  13217. “END=HIMEM + value%” but this also changes the address of HIMEM. Loops,
  13218. procedures and local variables are stored just below HIMEM so my data
  13219. was being overwritten. I tried lowering HIMEM immediately afterwards but
  13220. things still went wrong so I use “Wimp_SlotSize” directly. BASIC is
  13221. ignorant of the new memory area and it can therefore be safely used as a
  13222. store. Use a variable “Claimer%’ and exit the Wimp_Poll loop if it’s not
  13223. zero then call Wimp_SlotSize. R.D.
  13224. 3.6
  13225.  
  13226. •   !Draw − I used to find it difficult to get to grips with !Draw
  13227. because I couldn’t visualise the final layout. However, if you use the
  13228. ‘new view’ option together with ‘zoom’ you can get a WYSIWYG view. Not
  13229. only this, but it is possible to manipulate the major view from the
  13230. minor view. L Kennedy.
  13231. •   Acorn DTP − This may seem obvious but I only just figured it out! 
  13232. When printing documents from Acorn DTP, I found that footers (in
  13233. particular) wouldn’t print.  I spent ages looking through the DTP manual
  13234. trying to figure out why. I suddenly occurred to me that it might be the
  13235. printer driver and sure enough, it was.  The page size for A4 paper has
  13236. margins set all round, in particular a bottom margin of 20 mm is set,
  13237. and it is this which is ‘clipping’ out the footers.  Set this to 0 (say)
  13238. and the problem is solved. Kevin Quinn
  13239. 3.7
  13240. •   BASIC programs from !Edit − When in !Edit you can actually run BASIC
  13241. programs etc from within the desktop without pressing <f12>. I happened
  13242. to come across this accidentally. Press <menu> on the Edit icon and
  13243. click on New Task Window. This will produce a task window on the screen
  13244. and will allow you to execute the BASIC environment without leaving the
  13245. desktop and allow you to format disks also allowing you to nearly multi-
  13246. task formatting disks, you can suspend the task get on with something
  13247. then resume the task and the formatter will continue where it left off!
  13248. Press-ing <menu> from within the task window will give a list of
  13249. commands (anyone know what link/unlink does??) Graham Bisset
  13250. 3.7
  13251. •   Changing your batteries and keeping your CMOS RAM settings intact.
  13252. If you connect a 100 microfarads capacitor in series with a 100 ohm
  13253. resistor and clip them across the battery connec-tions, (+ve of the
  13254. capacitor to +ve of the battery) you will have about 70-100 seconds to
  13255. change your batteries without losing your CMOS settings. The computer
  13256. should be kept switched off throughout the operation. J W E Jones
  13257. 3.7
  13258. •   Current directory path − With reference to Richard Skemp’s query in
  13259. Archive 3.5 p43 about getting the full pathname of the current direc
  13260. tory, the ‘easiest on your fingers’ method uses system variables. It was
  13261. difficult to implement and required a fair amount of digging in the
  13262. manuals but it does demonstrate the use of *Set, *SetMacro and *SetEval,
  13263. so here it is:
  13264. 3.7
  13265. Place the following two lines into an Obey file, either via *Build or by
  13266. using !Edit. Save it in the library directory of your current disc as
  13267. “Path” and set the filetype to be an Obey file (*SetType %.Path Obey).
  13268. Execute it with *Path. Subsequent use of *Path will have other effects −
  13269. see later.
  13270. 3.7
  13271. Set Path$ $
  13272. 3.7
  13273. SetMacro Alias$Path Dir %%0||mIf “%%0” = “” Then Set Path$ $ Else If
  13274. “%%0”LEFT1 = “$” Then Set Path$ %%0 Else SetEval Path$ Path$ + “.%%0”
  13275. 3.7
  13276. How it works: “Set Path$ $” sets up a system variable called “Path$” and
  13277. assigns to it the string value “$”, which you will recognise as being
  13278. the name of the root directory.
  13279. 3.7
  13280. “SetMacro Alias$Path É” creates a macro system variable called “Path”.
  13281. 3.7
  13282. When “*Path [<directory path>]” is executed, the macro first selects the
  13283. directory specified in <dir-ectory path> by way of the old *Dir command.
  13284. 3.7
  13285. If no directory path is specified, the old *Dir selects the root
  13286. directory. The macro examines <directory path> and, if it is a null
  13287. string (“”), it sets Path$ to “$”.
  13288. 3.7
  13289. If the leftmost character of <directory path> is “$”, the macro replaces
  13290. Path$ with <directory path>.
  13291. 3.7
  13292. If <directory path> is not null and does not have “$” as its leftmost
  13293. character, the macro appends a full stop and the string specified in
  13294. <directory path> to whatever Path$ contains.
  13295. 3.7
  13296. Path$ thus always contains the full pathname of the currently selected
  13297. directory (CSD).
  13298. 3.7
  13299. You can actually redefine *Dir itself to do this, so that you don’t have
  13300. to remember to use *Path ins-tead of *Dir. In other words, it becomes
  13301. transparent.
  13302. 3.7
  13303. All you do is to change the first occurrence of Path (in “Alias$Path”)
  13304. to Dir (i.e. “Alias$Dir”) and change the “Dir %%0” to “%Dir %%0”. The
  13305. extra % sign in front of Dir is to enable the original version of Dir to
  13306. be used (FORTH programmers will recognise this as smudging). I have not
  13307. actually tried this, but it should work!!
  13308. 3.7
  13309. How to use it:
  13310. 3.7
  13311. Use “Path” wherever you would use “Dir”. In fact, do not use “Dir” at
  13312. all (more on this later). Also use full pathnames, as opposed to
  13313. wildcarded path-names. This is not really necessary, but it looks
  13314. neater.
  13315. 3.7
  13316. The command “*Path Basic.Games.Adventure”, executed from the root
  13317. directory, would set sub-directory “Adventure” as the CSD, exactly in
  13318. the same way as “*Dir Basic.Games.Adventure” would do.
  13319. 3.7
  13320. Notes:
  13321. 3.7
  13322. 1. No leading asterisks. You may enter them, but they are superfluous,
  13323. as these lines are sent direct to the CLI.
  13324. 3.7
  13325. 2. The use of two double bar characters in ||m. This is so that Obey
  13326. will insert it in the macro variable as |m, instead of as ASCII 13.
  13327. 3.7
  13328.    Alias$Path is a multi-line (well, a 2-line) com-mand. This is quite
  13329. acceptable, provided each line is separated by a carriage return (ASCII
  13330. 13, or |m).
  13331. 3.7
  13332.    Note that the (*)Dir command is at the start of the macro. Putting it
  13333. at the end causes errors related to the (*)IfÉThenÉElse construct.
  13334. 3.7
  13335. 3. Double percentage character in %%0. This is so that Obey will insert
  13336. it in the macro variable as %0, instead of attempting to evaluate a
  13337. (non-existent) parameter when the command *SetMacro is executed.
  13338. 3.7
  13339. 4. Double quote marks where the parameter is to be evaluated as a
  13340. string. This is so that string evaluation will proceed correctly.
  13341. 3.7
  13342. 5. Use of upper and lower case. In general they are interchangeable at
  13343. will.
  13344. 3.7
  13345. (*)Eval supports a number of operators (see p.394 in the Archimedes User
  13346. Guide). Some are in the form of ordinary words, such as LEFT, MOD, AND,
  13347. OR, etc, and others are symbols, such as *, +, >>, etc. The ordinary
  13348. words must be in UPPER CASE, otherwise they are not recognised.
  13349. 3.7
  13350. Disc-related commands seem to be quite happy when offered system
  13351. variables as pathnames. If an application sets up its own pathname as,
  13352. say, “Application$Dir”, you can make the first line of a BASIC program.
  13353. 3.7
  13354. 10 REM > <Application$Dir>.Program
  13355. 3.7
  13356. and be confident that the BASIC command SAVE will put it in the right
  13357. place, as the Filer (I think) evaluates <Application$Dir> correctly.
  13358. Also *Eval Application$Dir (without the <>) also returns the value of
  13359. the variable.
  13360. 3.7
  13361. You can get the value of the system variable into a BASIC variable with
  13362. the following FN:
  13363. 3.7
  13364. buffer_length%=255
  13365. 3.7
  13366. DIM buffer% buffer_length%
  13367. 3.7
  13368. PRINT FNevalOS(“Application$Dir”) : REM NB!! no < >
  13369. 3.7
  13370. END
  13371. 3.7
  13372.  
  13373. 3.7
  13374. DEF FNevalOS(A$) LOCAL T%,L%
  13375. 3.7
  13376. SYS “OS_EvaluateExpression”, A$,buffer%,buffer_length% TO ,T%,L%
  13377. 3.7
  13378. IF T%=0 THEN = L% : REM integer result
  13379. 3.7
  13380. buffer%?L%=13
  13381. 3.7
  13382. =$buffer%     : REM string result
  13383. 3.7
  13384. Anton Mans, Durban
  13385. 3.7
  13386. •   Double height in Fortran − The following short FORTRAN routine can
  13387. be used for the Archimedes to ‘tart up’ screen output. It is a routine
  13388. for printing text in double height on the screen and uses OS_Word call
  13389. 10 to read the system font bit pattern. A VDU23 call is used to define a
  13390. pair of characters consisting of the upper and lower halves of the input
  13391. character. These two characters are then printed, one above the other,
  13392. giving a double-height character. It’s very useful for printing headings
  13393. in screen output and doesn’t require messing about with special fonts
  13394. (I’m going to go on to that next!).
  13395. 3.7
  13396. I claim no originality for the overall method. A routine in BBC BASIC to
  13397. do this was published in Beebug some years ago (I forget who the author
  13398. was), but I thought it was worth publicising a FORTRAN version of it in
  13399. Archive because I don’t think the translation is immediately obvious and
  13400. readers may not have been aware of the technique anyway. It should be
  13401. easily extendible to double width, quadruple height, etc.
  13402. 3.7
  13403. Rather than just give the bare routine, I have produced a short program
  13404. incorporating it, that writes out a couple of strings. Much use is made
  13405. of the ‘$’ format to suppress CRLF when characters are being sent to the
  13406. VDU driver. The routine is more complex than the BASIC equivalent for
  13407. two reasons. Firstly, although there is a word ‘LEN’ in FORTRAN, it only
  13408. seems to give the maximum length of any given string, i.e. the length
  13409. that it is originally declared to be (e.g. CHARACTER*78 TXT; LEN(TXT)
  13410. gives 78). So in SUBROUTINE DOUBLE, there are a few lines to find the
  13411. length of the string passed to it by counting backwards from the maximum
  13412. length until a non-space character is reached. N.B. this will fail if
  13413. the string is put into the argument list, e.g. CALL DOUBLE(10,20,‘Hi
  13414. there’). Secondly, since individual bytes in memory are not accessible
  13415. to FORTRAN, you have to get the result back as three (4-byte) integers,
  13416. and use IAND with ISHFT to gain access to the bytes.
  13417. 3.7
  13418.      PROGRAM DHTEST
  13419. 3.7
  13420. C    *******************************
  13421. 3.7
  13422. C    A DEMONSTRATION PROGRAM FOR
  13423. 3.7
  13424.  PRINTING DOUBLE HEIGHT
  13425. 3.7
  13426. C    TEXT IN ANY MODE (NOT 7) ON THE
  13427. 3.7
  13428.  ACORN ARCHIMEDES,
  13429. 3.7
  13430. C    IN ACORNSOFT FORTRAN. USES ACORN
  13431. 3.7
  13432.  EXTENSIONS: OSWORD, ISHFT, IAND
  13433. 3.7
  13434. C    BY R.D.WRIGHT
  13435. 3.7
  13436. C    *******************************
  13437. 3.7
  13438.      CHARACTER*78 TXT
  13439. 3.7
  13440.      WRITE(6,’($,2A)’)CHAR(22)
  13441. 3.7
  13442. ,CHAR(12)
  13443. 3.7
  13444.      WRITE(6,*)’DOUBLE HEIGHT TEST’
  13445. 3.7
  13446.      TXT=’THIS IS A VERY LONG TEST
  13447. 3.7
  13448.  STRING’
  13449. 3.7
  13450.      CALL DOUBLE(10,20,TXT)
  13451. 3.7
  13452.      TXT=‘AND MORE’
  13453. 3.7
  13454.      CALL DOUBLE(10,23,TXT)
  13455. 3.7
  13456.      STOP ‘END OF DEMO’
  13457. 3.7
  13458.      END
  13459. 3.7
  13460.      SUBROUTINE DOUBLE(ICOL,IROW,TXT)
  13461. 3.7
  13462.      CHARACTER*78 TXT
  13463. 3.7
  13464.      INTEGER BLOCK(0:2)
  13465. 3.7
  13466.      INTEGER B(0:8)
  13467. 3.7
  13468.      N=79
  13469. 3.7
  13470.   10 N=N-1
  13471. 3.7
  13472.      IF (TXT(N:N).EQ.‘ ’) GO TO 10
  13473. 3.7
  13474.      DO 20 I=1,N
  13475. 3.7
  13476.      BLOCK(0)=ICHAR(TXT(I:I))
  13477. 3.7
  13478.      CALL OSWORD(10,BLOCK)
  13479. 3.7
  13480.      DO 2010 J=1,3
  13481. 3.7
  13482.      BLOCK(0)=ISHFT(BLOCK(0),-8)
  13483. 3.7
  13484.      B(J)=IAND(BLOCK(0),?IFF)
  13485. 3.7
  13486. 2010 CONTINUE
  13487. 3.7
  13488.      B(4)=IAND(BLOCK(1),?IFF)
  13489. 3.7
  13490.      DO 2020 J=5,7
  13491. 3.7
  13492.      BLOCK(1)=ISHFT(BLOCK(1),-8)
  13493. 3.7
  13494.      B(J)=IAND(BLOCK(1),?IFF)
  13495. 3.7
  13496. 2020 CONTINUE
  13497. 3.7
  13498.      B(8)=IAND(BLOCK(2),?IFF)    
  13499. 3.7
  13500.      WRITE(6,‘($,10A)’)CHAR(23),CHAR(
  13501. 3.7
  13502. 240),CHAR(B(1)),CHAR(B(1))
  13503. 3.7
  13504.      +,CHAR(B(2)),CHAR(B(2)),CHAR(B(3
  13505. 3.7
  13506. )),CHAR(B(3)),
  13507. 3.7
  13508.      +CHAR(B(4)),CHAR(B(4))
  13509. 3.7
  13510.      WRITE(6,‘($,10A)’)CHAR(23),CHAR(
  13511. 3.7
  13512. 241),CHAR(B(5)),CHAR(B(5))
  13513. 3.7
  13514.      +,CHAR(B(6)),CHAR(B(6)),CHAR(B(7
  13515. 3.7
  13516. )),CHAR(B(7))
  13517. 3.7
  13518.      +,CHAR(B(8)),CHAR(B(8))
  13519. 3.7
  13520.      IX=ICOL+I-1
  13521. 3.7
  13522.      IYU=IROW
  13523. 3.7
  13524.      IYL=IROW+1
  13525. 3.7
  13526.      WRITE(6,‘($,8A)’)CHAR(31),CHAR(
  13527. 3.7
  13528. IX),CHAR(IYU),CHAR(240)
  13529. 3.7
  13530.      +,CHAR(31),CHAR(IX),CHAR(IYL)
  13531. 3.7
  13532. ,CHAR(241)
  13533. 3.7
  13534.   20 CONTINUE
  13535. 3.7
  13536.      RETURN
  13537. 3.7
  13538.      END
  13539. 3.7
  13540. R.D.Wright
  13541. 3.7
  13542. •   Easy ‘C’ Compilation I − While working on a C program it can become
  13543. quite tedious to type in the same parameters every time you want to
  13544. compile the latest version of your program. One way to get around this
  13545. is to use something like “C-Front” from Mitre which allows you to
  13546. compile directly from the desktop. A simpler and cheaper way is to use
  13547. an ‘Obey’ file which will do the job for you. Below is an example that
  13548. has been written to make the compilation of C (Release 3) programs
  13549. easier. Using this method, you can still work from the desktop editing
  13550. your text in !Edit, saving it, then pressing <f12>. You can then use the
  13551. following command:
  13552. 3.7
  13553. *c <inputname> [outputname]
  13554. 3.7
  13555. It will then automatically Compile and Link your new masterpiece!
  13556. 3.7
  13557. The program has been fully commented to aid understanding. It should be
  13558. saved as an ‘Obey’ file in the ‘Library’ directory under the name “C”.
  13559. Obviously it should be customised to suit your own directory layout and
  13560. preferred compiler options.
  13561. 3.7
  13562. | ‘C’ Obey file, Compiler & Linker -
  13563. 3.7
  13564.  16/02/90 Mark Taylor
  13565. 3.7
  13566. | Syntax : “*C <inputname> [output
  13567. 3.7
  13568. name]“
  13569. 3.7
  13570. | Where ‘inputname’ is the name of
  13571. 3.7
  13572.  the file to be compiled
  13573. 3.7
  13574. | and ‘outputname’ is the name of the
  13575. 3.7
  13576.  output file, e.g. !RunImage, etc.
  13577. 3.7
  13578. |
  13579. 3.7
  13580. | Check for parameters. If none
  13581. 3.7
  13582.  present then error and output
  13583. 3.7
  13584.  a message.
  13585. 3.7
  13586. if “%0” = “” then error 0 Error in
  13587. 3.7
  13588.  ‘C’ Compiler & Linker. Syntax : *C |<inputname|> [outputname]
  13589. 3.7
  13590. |
  13591. 3.7
  13592. | Set system variable ‘ipname$’ to
  13593. 3.7
  13594.  first parameter after the “c”.
  13595. 3.7
  13596. Set ipname$ %0
  13597. 3.7
  13598. |
  13599. 3.7
  13600. | Check for a second and if there is
  13601. 3.7
  13602.  one set ‘opname$’ to that
  13603. 3.7
  13604.  variable,
  13605. 3.7
  13606. | else set ‘opname$’ equal ‘ipname$’.
  13607. 3.7
  13608. If “%1” > “” then Set opname$ %1 else
  13609. 3.7
  13610.  Set opname$ %0
  13611. 3.7
  13612. |
  13613. 3.7
  13614. | Compile with ‘ipname$’, do NOT Link
  13615. 3.7
  13616.  (-c). ANSI 3 Standard method.
  13617. 3.7
  13618. cc -c <ipname$> -I$.RISC-OSLib
  13619. 3.7
  13620. |
  13621. 3.7
  13622. | Link ‘ipname$’ with standard lib-
  13623. 3.7
  13624. raries and output as ‘opname$’.
  13625. 3.7
  13626. link -o <opname$> o.<ipname$> $.RISC
  13627. 3.7
  13628. -OSLib.o.RISC-OSLib $.CLib.o.Stubs
  13629. 3.7
  13630. |
  13631. 3.7
  13632. | Echo finishing message.
  13633. 3.7
  13634. Echo File ‘<ipname$>’ successfully
  13635. 3.7
  13636.  compiled as ‘<opname$>’.
  13637. 3.7
  13638. | Unset the temporary variables.
  13639. 3.7
  13640. Unset ipname$
  13641. 3.7
  13642. Unset opname$
  13643. 3.7
  13644. Below is a cut down version that is not quite as sophisticated but is
  13645. easier to understand.
  13646. 3.7
  13647. | ‘C’ Obey file, Compiler & Linker -
  13648. 3.7
  13649.  16/02/90 Mark Taylor
  13650. 3.7
  13651. | Syntax : “*C name” Where ‘name’ is
  13652. 3.7
  13653.  the name of the file to be
  13654. 3.7
  13655.  compiled.
  13656. 3.7
  13657. cc -c %0 -I$.RISC-OSLib
  13658. 3.7
  13659. link -o %0 o.%0 $.RISC-OSLib.o.RISC
  13660. 3.7
  13661. -OSLib $.CLib.o.Stubs
  13662. 3.7
  13663. Echo File ‘%0’ successfully compiled.
  13664. 3.7
  13665.  
  13666. 3.7
  13667. •   Easy ‘C’ Compilation II − This is not a new idea but it is still
  13668. worth mentioning. To speed up the compilation of ‘C’ programs it is a
  13669. good idea to copy the necessary files to a RAM disc. I have written an
  13670. Obey file to achieve this. It is best saved into the Library directory
  13671. so that it may be called from the star (*) prompt any time. The way the
  13672. file is set up at the moment means that it will copy files from the hard
  13673. disc to a RAM disc of some 1.5M. The RAM disc is set up using the
  13674. “MemAlloc” module (this can be found in the !Lander directory on the
  13675. Apps2 disc of RISC-OS). It should be copied in the mod-ules directory of
  13676. the !System folder. The directory layout reflects a fairly standard
  13677. system under release 3 of Acorn’s ANSI C.
  13678. 3.7
  13679. Important!
  13680. 3.7
  13681. You must remember to copy the files you have changed during your session
  13682. back to disc before switching off!
  13683. 3.7
  13684. | Obey file to set up RAM disc as the
  13685. 3.7
  13686.  working disc for ‘C’ 18/1/90
  13687. 3.7
  13688. |
  13689. 3.7
  13690. | First create large RAM disc: 1.5MB!
  13691. 3.7
  13692. RMensure MemAlloc 0.11 RMload :4.$.
  13693. 3.7
  13694. !System.modules.memalloc
  13695. 3.7
  13696. RAMFSSize 1500
  13697. 3.7
  13698. RMensure SharedClibrary 3.50 RMload
  13699. 3.7
  13700. :4.$.!System.modules.clib
  13701. 3.7
  13702. RMensure FPEmulator 2.80 RMload :4.$.
  13703. 3.7
  13704. !System.modules.FPE280
  13705. 3.7
  13706. |
  13707. 3.7
  13708. CDir RAM:$.RISC-OSlib
  13709. 3.7
  13710. CDir RAM:$.Clib
  13711. 3.7
  13712. CDir RAM:$.User
  13713. 3.7
  13714. Copy ADFS:$.RISC-OSlib.* RAM:$.RISC-
  13715. 3.7
  13716. OSlib.* ~cr~v
  13717. 3.7
  13718. Copy ADFS:$.CLib.* RAM:$.Clib.* ~cr~v
  13719. 3.7
  13720. Copy ADFS:$.User.* RAM:$.User.* ~cr~v
  13721. 3.7
  13722. CDir RAM:$.Library
  13723. 3.7
  13724. Copy ADFS:$.Library.link RAM:$.Library.* ~c~v
  13725. 3.7
  13726. Copy ADFS:$.Library.cc RAM:$.Library.* ~c~v
  13727. 3.7
  13728. Copy ADFS:$.Library.squeeze RAM:$.Library.* ~c~v
  13729. 3.7
  13730. | Copy my single letter Obey file ‘C’.
  13731. 3.7
  13732. Copy ADFS:$.Library.c RAM:$.Library
  13733. 3.7
  13734. .* ~c~v
  13735. 3.7
  13736. |
  13737. 3.7
  13738. |Define function keys.
  13739. 3.7
  13740. k.1c
  13741. 3.7
  13742. k.2cc -c
  13743. 3.7
  13744. k.3-I$.RISC-OSLib
  13745. 3.7
  13746. k.4link -o
  13747. 3.7
  13748. k.5$.RISC-OSLib.o.RISC-OSLib
  13749. 3.7
  13750. k.6$.CLib.o.Stubs
  13751. 3.7
  13752. k.7Squeeze -v
  13753. 3.7
  13754. | Delete all unwanted object files!
  13755. 3.7
  13756. k.12wipe o.* ~c
  13757. 3.7
  13758. |Perform *RAM at the end!
  13759. 3.7
  13760. RAM
  13761. 3.7
  13762. |Select $.User directory!
  13763. 3.7
  13764. Dir $.User
  13765. 3.7
  13766. Echo RAM Disc now setup correctly
  13767. 3.7
  13768.  (DIR=$.User)
  13769. 3.7
  13770. Echo
  13771. 3.7
  13772. free
  13773. 3.7
  13774. Filer_OpenDir RAM:$.User.c
  13775. 3.7
  13776. •   Music Maestro please! − The !Maestro applic-ation provided by Acorn
  13777. is very powerful, if very complex. However, it still has a number of
  13778. short-comings relative to the old Island Logic’s “Music System” for the
  13779. BBC micro. These include the inability to delete whole bars or several
  13780. bars; the inability to handle triplets; the inability to change Tempo
  13781. within a passage. Also, entering scores by dragging icons is extremely
  13782. slow and laborious and finally, “Music System” counted notes in a bar
  13783. and, when the right time had been used, automatically entered a bar-
  13784. line. This not only saved an operation, it also provided a cross-check
  13785. on typing accuracy: the unexpected appearance of a bar-line indicated a
  13786. mistake somewhere.
  13787. 3.7
  13788. !Maestro’s !RunImage file has been modified to permit changing of the
  13789. Tempo during a passage. This required a new sprite, placed in the space
  13790. in the top right corner, next to the hemi-demi-semi-quaver rest; ‘M’ for
  13791. Metronome seemed to be a reasonable choice. This sprite can be picked
  13792. up, just like the others, and placed above the appropriate bar-line.
  13793. When it is ‘clicked’ to fix it in position, it changes into the crotchet
  13794. symbol followed by “=<num>”, where <num> is a number from 40 to 210,
  13795. representing the Tempo as selected by the Tempo sub-menu from the main
  13796. Maestro menu. The numbers (of beats per minute) are given on page 1810
  13797. of the Programmer’s Reference Manual.
  13798. 3.7
  13799. During these investigations, a few small errors were noticed in the
  13800. Programmer’s Reference Manual (RISC-OS Edition). In Vol.4, under Music
  13801. Files:
  13802. 3.7
  13803. p.1809 “Maestro” is followed by “Line-feed”, &0A (not &0D)
  13804. 3.7
  13805. Music Data: Not “4*8 length of queue of notesÉ” but “5*8” because the
  13806. length is written to file as an integer variable, FINE%(C%) (as in DC al
  13807. fine!), so it consists of one byte (&40:integer) followed by 4 bytes
  13808. (value).
  13809. 3.7
  13810. p.1811 Attributes: Clef Bit 5 is unused Bits 6 & 7 are (Stave−1), range
  13811. 0−3. The attributes as defined in !Maestro. !RunImage lines 28900−29020
  13812. agree with those obtained by a *DUMP of a Music file. Alan Quayle
  13813. 3.7
  13814. •   Shift Caps Lock will give you capitals normally but will enable
  13815. lower case characters to be typed by holding down the shift key − very
  13816. useful when writing BASIC programs. Fred Lee
  13817. 3.7
  13818. •   SID − There is a mail-server on the SID database and so if you can
  13819. use E-MAIL (e.g. if you are a student at University, like me) then you
  13820. can mail it at SIDInfo@uk.co.acorn with a message contain-ing the word
  13821. ‘help’ and it will mail you a file telling you how to download stuff. 
  13822. It only has the free PD stuff though (obviously). The advantages of this
  13823. service work both ways − the SID machine can schedule the replies in
  13824. non-peak times and you are not using lots of on-line time down-loading.
  13825. Kevin F. Quinn
  13826. 3.7
  13827. •   TinyDirs − it may be obvious to most of you butÉ The TinyDirs
  13828. program not only allows directories to be installed on the icon bar but
  13829. allows applications to be as well. After all they are only directories
  13830. really. The application can then be run by clicking on the icon on the
  13831. icon bar in just the same way as any other application. This means you
  13832. can have your favourite programs on the icon bar without having to worry
  13833. about how to install them there. The TinyDirs program will also cope
  13834. with more than one directory. (A friend was running a new copy of
  13835. TinyDirs each time he wanted a new directory installed.) If you just
  13836. drag the icon for the directory you want installed onto one of those
  13837. already there it will be added to the list. Andrew Ling.
  13838. 3.7
  13839. •   Turkish ‘i’ − There is a minute error in the char-acter set supplied
  13840. as “Latin3” on the Archimedes which, according to Acorn’s manual,
  13841. corresponds to ISO 8859/3 covering German, Spanish, Turkish etc.
  13842. Character 185 is supposed to be the Turkish lower case ‘i’, i.e. like
  13843. the English ‘i’ but without the dot. (The Mac has let me down for once −
  13844. no Turkish ‘i’! Ed.) Instead, it replicates the standard Latin ‘i’.
  13845. 3.7
  13846. To overcome this, insert the following in a boot file:
  13847. 3.7
  13848. *echo <23><185><0><0><56><24><24>
  13849. 3.7
  13850. <24><60><0>
  13851. 3.7
  13852. John Morgan
  13853. 3.7
  13854. •   Working on a 1Mbyte machine − When loading applications within the
  13855. desktop especially on a 1Mb machine, always call up the task display and
  13856. reduce the size of the next slot to as low as the machine will allow,
  13857. some applications will allow you to set it to 8k and they will just grab
  13858. as much memory as they need, however some will report ‘App need XXXk to
  13859. start’ so change the slot to about XXX+20k for workspace. If you do this
  13860. then the application can only grab as much memory as it needs. However,
  13861. if you leave say 640k in the next and you click on an application then
  13862. its likely that the application will grab about 600k or so leaving
  13863. precious little for other programs, data etc Users of 2Mb+ machines
  13864. don’t have the problem, but they still need to be careful of memory
  13865. grabbing applications!  Graham Bisset
  13866. 3.7
  13867.  
  13868. •   Auto-Booting on Startup − The following tip is of particular use to
  13869. users of hard disks.
  13870. 3.8
  13871. With so many extensions to RISC-OS being avail-able, most notably the
  13872. Outline Font Manager, it can be inconvenient if your applications can’t
  13873. find them and even worse if the first !System directory that is seen is
  13874. on a floppy.
  13875. 3.8
  13876. The simplest solution to this is to put !Fonts and !System in the root
  13877. directory of your hard disk and then open the root directory as your
  13878. first action.
  13879. 3.8
  13880. However, if the same action has to be performed repeatedly, then the
  13881. computer must be able to do it for you and it can.
  13882. 3.8
  13883. First you should create a command file called !Boot in Edit. This should
  13884. contain something like:
  13885. 3.8
  13886. adfs::4.$.!System
  13887. 3.8
  13888. adfs::4.$.!Fonts
  13889. 3.8
  13890. DESKTOP
  13891. 3.8
  13892. This will then initialise the system and font paths before starting the
  13893. desktop. To make it run on startup, you must configure the system to
  13894. execute the !boot file, this is done from an operating system * prompt
  13895. by:
  13896. 3.8
  13897. *configure boot
  13898. 3.8
  13899. *configure drive 4
  13900. 3.8
  13901. *opt 4,3
  13902. 3.8
  13903. The last option sets the current drive to execute the !boot file, rather
  13904. than attempting to run it as a BASIC program.
  13905. 3.8
  13906. This is not the end of the startup. When you invoke the desktop, it is
  13907. possible have one or more applications run automatically. To run a
  13908. single application, just append the application path on the end of the
  13909. DESKTOP command, for example:
  13910. 3.8
  13911. DESKTOP adfs::4.$.!Edit
  13912. 3.8
  13913. This will startup the desktop with Edit on the menu bar. To initialise
  13914. more than one application, you specify a text file which lists all the
  13915. applications that you wish to start.
  13916. 3.8
  13917. DESKTOP -File adfs::4.$.Startup
  13918. 3.8
  13919. The file Startup might contain the following list of files:
  13920. 3.8
  13921. adfs::4.$.!Draw
  13922. 3.8
  13923. adfs::4.$.!Edit
  13924. 3.8
  13925. adfs::4.$.!Paint
  13926. 3.8
  13927. This will then enter the desktop and start Draw, Edit and Paint
  13928. automatically. One word of warning, if you are limited to 1 Mb, be
  13929. careful as it would be very easy to use up all the available memory.
  13930. 3.8
  13931. Further customisation could be had by adding RMload commands to the !Run
  13932. file of !System to automatically load modules (such as NewModes) and
  13933. Filer_OpenDir pathname to the !Run files of applications in the startup
  13934. file to automatically open directory viewers. Phil Kitching
  13935. 3.8
  13936. •   BasicEdit − For users of the Data Store !Basic-Edit application:
  13937. Because this application uses the DSUtil module to alter the operation
  13938. of the mouse pointer it is not possible to run desktop programs
  13939. successfully from Edit without returning to the desktop first. This,
  13940. however, has the disadvantage that programs are more difficult to debug:
  13941. when a program ends it returns to the desktop and all the variables are
  13942. lost. A few simple changes to the !BasicEdit.!RunImage program, however,
  13943. seem to provide a satisfactory remedy. Insert near the start of the
  13944. program the following function key definitions:
  13945. 3.8
  13946. *KEY 2 *BEUtilOff|M*BASIC|MOLD|M
  13947. 3.8
  13948. RUN|M
  13949. 3.8
  13950. *KEY 3 *BEUtilOn|MEDIT .|M
  13951. 3.8
  13952. Then to run any program from the Edit screen simply press <f1> once and
  13953. <f2> once. If the prog-ram uses the Wimp, the desktop will reappear as
  13954. it was before you ran !BasicEdit with the new program running as well.
  13955. After the program ends, a “command window” will appear where you can use
  13956. LVAR or any other BASIC commands. To return to the Edit screen where you
  13957. left it, simply press <f3>. Hugh Eagle
  13958. 3.8
  13959. •   Battery changing − You don’t have to bother with adding capacitors
  13960. etc as mentioned last month. All you need to do is leave the computer
  13961. switched on while changing the batteries (but mind your fingers on the
  13962. fan!). There is no danger involved, as the mains is totally enclosed,
  13963. and it will not harm the machine. Mike Harrison.
  13964. 3.8
  13965. •   C programming − When writing desktop applications, put —DATE— in the
  13966. version string. So, if you forget to update the version number when
  13967. modifying the source files, it doesn’t really matter because when the
  13968. info is given from the menu, you can then find out what date the file
  13969. was compiled. R Bunnett.
  13970. 3.8
  13971. •   Closing the Edit window using <adjust> (instead of <select>) the
  13972. source directory is opened after the window has been closed. Holding the
  13973. <shift> key down simultaneously, will cause the directory viewer to be
  13974. opened without closing the Edit window (this allows you to drag-save the
  13975. file into the same directory, but with a different name). This is also
  13976. true for Draw and Paint.
  13977. 3.8
  13978. •   Double clicking problems − Double clicking on an application
  13979. installed on the icon bar by !TinyDirs can result in the application
  13980. running twice. This can have the confusing result that when you quit the
  13981. application a second copy of it immediately appears in its place.
  13982. 3.8
  13983. I have found a somewhat cumbersome solution to this problem which is to
  13984. include the following code in the WimpPoll loop:
  13985. 3.8
  13986. WHEN 17 : IF block%!4<>TaskId% AND block%!16=&400C2 THEN
  13987. 3.8
  13988. PROCInsertCR(block%+28)
  13989. 3.8
  13990. dummy$=$(block%+28)
  13991. 3.8
  13992. IF dummy$=TaskName$ THEN
  13993. 3.8
  13994. quit%=TRUE
  13995. 3.8
  13996. ENDIF
  13997. 3.8
  13998. ENDIF
  13999. 3.8
  14000.    .
  14001. 3.8
  14002.    .
  14003. 3.8
  14004. DEF PROCInsertCR(mem%)
  14005. 3.8
  14006. LOCAL I%
  14007. 3.8
  14008. I%=mem%
  14009. 3.8
  14010. REPEAT
  14011. 3.8
  14012. I%+=1
  14013. 3.8
  14014. UNTIL ?I%=0
  14015. 3.8
  14016. ?I%=13
  14017. 3.8
  14018. ENDPROC
  14019. 3.8
  14020. When the first application receives the message that is broadcast when a
  14021. new application starts (i.e. it receives reason code 17 with
  14022. block%!16=&400C2) and it finds that the new task has the same name
  14023. (TaskName$) as itself, it sets quit%=TRUE which makes the application
  14024. quit at the end of the poll loop.
  14025. 3.8
  14026. Note that when each application starts, it receives the message
  14027. broadcast by itself, hence the com-parison of block%!4 (which holds the
  14028. handle of the sender of the message) with TaskId% to prevent the task
  14029. from shutting itself down!
  14030. 3.8
  14031. Note also that the little procedure PROCInsertCR seems to be necessary
  14032. to convert the string at block%+28 from a zero terminated string to a
  14033. normal &0D terminated one. (Can anyone explain please RISC-OS’s
  14034. infatuation with these wretched zero-terminated strings ... and to say
  14035. that it’s because C or Unix, or whatever, uses them is no answer!) Hugh
  14036. Eagle
  14037. 3.8
  14038. •   Filer_OpenDir − The command ‘Filer_Open Dir’ may be used for any
  14039. file path. This includes ‘filing systems’ created using a system
  14040. variable (e.g. System$Path) may be referred to as the filing system
  14041. ‘system:’. Some ‘filing systems’ are one direction only (e.g. printer:).
  14042. The command can also use SystemDevices’ own ‘filing systems’:
  14043. 3.8
  14044.    kbd: / rawkd:   the keyboard
  14045. 3.8
  14046.    null:   the ‘null device’
  14047. 3.8
  14048.    printer:   the printer
  14049. 3.8
  14050.    serial:   the serial port
  14051. 3.8
  14052.    vdu: / rawvdu:   the screen
  14053. 3.8
  14054.    netprint:   the network printer
  14055. 3.8
  14056. Examples: dragging a file onto the view opened by:
  14057. 3.8
  14058. *Filer_OpenDir printer: will spool it to the printer
  14059. 3.8
  14060. *Filer_OpenDir vdu: will send it to the vdu driver (try it with a text
  14061. file)
  14062. 3.8
  14063. *Filer_OpenDir null: <shift> dragging will ‘move’ a file to null: i.e.
  14064. delete it
  14065. 3.8
  14066. •   FormEd Update − Users who have downloaded the !FormEd template
  14067. editor from Acorn’s SID board (also available on shareware disc 20)
  14068. might like to know how to put back the ‘sprite routines’.
  14069. 3.8
  14070. The version of !FormEd refered to has a !Help file stating a date of 16-
  14071. May-89, and a ReadMe file stating version 1.00, but shows version 1.01
  14072. and date of 23-May-89 in its Info window. The ReadMe file shows that
  14073. this is an unsupported Acorn application.
  14074. 3.8
  14075. The !Help file states ‘Some previous versions of FormEd used to provide
  14076. facilities for editing sprites. These are now provided only in the
  14077. !Paint application’, also that when a sprite file is dragged onto the
  14078. FormEd icon on the iconbar, a window will display the sprites. In the
  14079. supplied state, no window is opened and you do not know what your sprite
  14080. names are, or even if you have loaded the correct file, until you define
  14081. an icon as a named sprite which you hope is in the file!
  14082. 3.8
  14083. I was having problems with not enough memory on a 1Meg machine for
  14084. !Paint, !FormEd, the sprite files and the templates being built. (It IS
  14085. possible with very careful setting of the ’Free’ and ‘Next’ bars in the
  14086. Task Manager, but you can’t have any printer drivers etc). An examina
  14087. tion of the !FormEd reveal-ed that by removing the REM statements from
  14088. just 2 lines the sprite routines were again available.
  14089. 3.8
  14090. Load the !RunImage for !FormEd and LIST lines 2270 and 3080. Edit those
  14091. lines to remove the REM before PROCspriteinfo in each, so that the lines
  14092. are as shown below:
  14093. 3.8
  14094. 2270 WHEN &FF9:PROCloadsprites (f$)
  14095. 3.8
  14096.  :PROCspriteinfo
  14097. 3.8
  14098. 3080 PROCloadsprites(FNstring0(q%
  14099. 3.8
  14100. +44)):PROCspriteinfo
  14101. 3.8
  14102. Save the file back to the disk. When a sprite file is dragged to the
  14103. FormEd icon, a sprite window is shown and the sprite editing routines
  14104. appear to work OK (although !Paint is more powerful). Douglas Potter
  14105. 3.8
  14106. •   GraphBox − Maybe this is an obvious point to some users but it took
  14107. me a while to discover. Graphs imported into !Draw can be disassembled
  14108. to a remarkable degree (using ungroup) right down to facets of
  14109. individual 3D bars. This allows extensive re-orienting, re-colouring
  14110. options which can avoid some of the problems with dark colours and
  14111. overlaps when colour printing on a dot matrix printer. John Wann
  14112. 3.8
  14113. •   Hardware developer’s tool − On the monthly program disk is a utility
  14114. (‘SVCBAS’) which is very useful for hardware developers. It patches
  14115. BASIC so that memory indirection operators (? and !) operate in
  14116. supervisor mode. This allows quick ‘tweaking’ of hardware devices while
  14117. testing. Documentation is minimal, since those who are likely to need it
  14118. should not need any! Mike Harrison.
  14119. 3.8
  14120. •   Maestro − There are (I think!) several errors in the description of
  14121. the !Maestro file format on pages 1809 to 1813 of the PRM:
  14122. 3.8
  14123. a)   in the ‘Music data’ the number of bytes of gate data is given, not
  14124. the number of gates as the PRM says
  14125. 3.8
  14126. b)   the number of bytes of gate data is preceded by &40
  14127. 3.8
  14128. c)   each of the next eight words (which give the length in bytes of the
  14129. queues of note/rest data for the eight channels) is also preceded by &40
  14130. 3.8
  14131. d)   in the ‘Stave data’, the number of music staves is reduced by 1
  14132. (i.e. if there are 4 music staves this is recorded as 3)
  14133. 3.8
  14134. e)   in the descriptions of the ‘Gate Attributes’, the binary represen
  14135. tations of the bottom few bits of each byte are given with the least
  14136. significant bit first. Thus where the ‘Clef’ description says “Bits 0 −
  14137. 2 : 001 binary” it means that bits 0 and 1 are 0 and bit 2 is 1.
  14138. 3.8
  14139. f)   within the ‘Clef’ attribute data, the stave number (minus 1) is
  14140. given in bits 6 and 7, not bits 5 and 6. Hugh Eagle
  14141. 3.8
  14142. •   Problems with an Epson LQ1050? When printing from Impression, !Draw,
  14143. etc using the !PrinterDM application, the 360 x 360 dpi mode may cause
  14144. spurious characters to be printed, which results in a poor quality
  14145. printout. The reason for this is that the firmware in the Epson printer
  14146. does not support the [Esc]+ control sequence which is nec-essary to set
  14147. a line feed of 1/360th of an inch. In order to get this option working
  14148. you will need a new version of the printer’s ROM. This can be purch-ased
  14149. from Applied Technology Ltd. David Crofts
  14150. 3.8
  14151. •   Re-inking your ink-cartridge − It is possible to re-ink an ink-
  14152. cartridge for an HP-Deskjet Plus printer and probably other inkjet
  14153. printers by buying one of the inks listed below and then using a syringe
  14154. to insert the ink through a hole on the top of the cartridge. (a)
  14155. Fountain pen ink (Pelikan), (b) Diadye ink (photo-shop), (c) Rotring
  14156. air-brush ink. Tony Hopstaken
  14157. 3.8
  14158. •   Rotor passwords − Lee Thake has sent in the passwords for Rotor, but
  14159. in case you would rather not know, here they are in very simple coded
  14160. form so that once you have the first password, you will be able to work
  14161. out the others. QJU, HBH, MJQ, TMZ, NFX, BXF, UOU, FOE.
  14162. 3.8
  14163. •   Sparkplug − We have a lot of questions about how to decompress
  14164. programs such as PCDir which appear on our program and Shareware discs.
  14165. Let me try to explain in more detail.
  14166. 3.8
  14167. The reason the programs are compacted is that there would not be enough
  14168. room on the disc for the uncompacted version. Thus, if you are to uncom-
  14169. pact them, you need to do so onto another (prefer-ably blank) disc. If
  14170. you have two drives or a hard disc on your computer, the job is easier
  14171. then if you are trying to do it on a single drive, so I will do it the
  14172. hard way first.
  14173. 3.8
  14174. Insert a blank disc in the drive and open its filer window. Remove this
  14175. disc and insert the Program Disc (or Shareware disc, or whatever) in the
  14176. drive and open its filer window. If you have not already done so,
  14177. install !sparkplug onto the icon bar by double-clicking on it. Drag the
  14178. icon of the program to be decompacted onto the !sparkplug icon on the
  14179. icon bar. A pseudo-filer window opens. Drag the icon or icons from there
  14180. into the filer window of the blank disc. You will be prompted to insert
  14181. that disc into the drive and will probably then have to keep swapping
  14182. the discs over as prompted until all of the compacted files and folders
  14183. have been uncom-pacted and copied across onto the other disc. This may
  14184. actually require quite a number of repetitions, so it may be better to
  14185. create as large a ram disc as possible and drag the files from the
  14186. !Sparkplug filer window onto the ram disc then change discs and copy
  14187. back from the ram disc to the blank disc. This, of course, will not work
  14188. if you cannot make a ram disc big enough to accommodate the uncompacted
  14189. files.
  14190. 3.8
  14191. If you have two discs, simply put the program disc in one drive and the
  14192. blank disc in the other. Proceed as above, except that you will not be
  14193. prompted to change discs since both are accessible to the computer at
  14194. the same time.
  14195. 3.8
  14196. •   Too many fonts − If you have too many anti-aliased fonts, !Edit will
  14197. crash with a ‘Fatal internal error type=5’. So those of you who are
  14198. purchasing the new onslaught of outline fonts should not put them all
  14199. into one !Fonts directory.
  14200. 3.8
  14201. •   VIDC parameters − On the monthly program disk is a text file of all
  14202. the VIDC and VDU para-meters for the standard screen modes. This makes
  14203. life a lot easier when defining your own modes, especially without the
  14204. aid of an oscilloscope to monitor the video waveform, and a VIDC data-
  14205. sheet. It’s much easier to tweak the existing num-bers than to work them
  14206. out from scratch! Mike Harrison.
  14207. 3.8
  14208. •   Wimp programming − If you get unexpected messages such as “Too many
  14209. nested structures” when running a BASIC program in a Desktop application
  14210. it may be simply because you have failed to allocate a large enough
  14211. Wimpslot. Hugh Eagle
  14212. 3.8
  14213. •   Z88 file transfer − The Z88 can save files to disc. Ranger sell a
  14214. battery powered disc drive which reads and writes 3.5“ discs in 720k
  14215. MSDOS format. The trouble is it costs as much as the Z88.
  14216. 3.8
  14217. The Z88 does not insist on sending a line feed, see Printered.
  14218. 3.8
  14219. Since the Z88 serial port uses XOn/XOff by default, a three wire serial
  14220. lead will suffice if the Archim-edes is using similar software. Be sure
  14221. to short other handshaking lines. The simplest method of sending data to
  14222. the Archimedes is to use:
  14223. 3.8
  14224. *SPOOL file
  14225. 3.8
  14226. *FX21,1
  14227. 3.8
  14228. *FX2,1
  14229. 3.8
  14230. and just print from the Z88. Make sure the last lines in the file being
  14231. printed have *SPOOL *FX 2,0.
  14232. 3.8
  14233. The next stage up is to use a communications pack-age such as Hearsay
  14234. and the Filer to send or receive files. There is a nice routine on the
  14235. Data Store utilities disc which does the job using the Filer.
  14236. 3.8
  14237. Lastly the best way of transferring data is to use the PCLink ROM and
  14238. the Z88 filer that comes with Pipedream. Unfortunately PCLink comes with
  14239. a Z88 to PC cable so some soldering is still required. Data transfer
  14240. with PCLink is unnecessarily slow, a version of Kermit would have been
  14241. more use and faster. Bruce Edelsten
  14242. 3.8
  14243. (How about using the Archimedes-Z88 link that we supply for £35? Ed.)
  14244. 3.8
  14245.  
  14246. 3.9
  14247. •   Clear a line − To clear a text input in an editable field, press
  14248. <ctrl-U>. For example, you can use this to clear the filename before
  14249. typing a new entry. Philip Armstrong
  14250. 3.9
  14251. •   !Draw − Someone mentioned converting sprite images to object
  14252. orientated !Draw images. I have used a graph program and converted the
  14253. sprite it created to a !Draw file by zooming up and drawing over the
  14254. sprite. If you keep to, say, the bottom left of each pixel, it works OK
  14255. and gives a much better printed image.
  14256. 3.9
  14257. To get vertical and horizontal lines, use the edit coordinated facility.
  14258. Get one end correct then note its x or y location and then edit the
  14259. other end to match it.
  14260. 3.9
  14261. If you have typed some incorrect text into a draw file, for example ‘Fig
  14262. 4.5’ needs to be changed to ‘Fig 4.6’, then you would normally have to
  14263. re-type the line and be careful to locate it in the same place. If
  14264. characters are changed leaving the string length the same then you could
  14265. use !Edit to search and replace the text, once the draw file has been
  14266. dragged onto the !Edit icon. Strings could also be padded out with
  14267. spaces if a shorter replace string is required, but for a longer string
  14268. it is usually easier to re-type in !Draw. Philip Armstrong
  14269. 3.9
  14270. •   DXF files − Inclusion of a 41 group in TEXT entities permits
  14271. characters with varying aspect ratios. A value of 0.5 matches the system
  14272. fonts. Jim Markland.
  14273. 3.9
  14274. •   Elektor sound sampler − In December’s issue of the Netherlands
  14275. edition of Elektor (November in the U.K. edition) they published a
  14276. D.I.Y. sound sampler podule. This podule has been built freq-uently but
  14277. there is one small problem. There are no commands provided to use the
  14278. sampler so it is difficult to use it in your own software. I decided
  14279. therefore to write a module.
  14280. 3.9
  14281. The module makes use of a timer within the 6522 on the board. This
  14282. results in a very accurate sample-time. To make use of the module, you
  14283. need to set a jumper on the podule which connects the 6522-IRQ-line to
  14284. the FIQ-line of the Archimedes.
  14285. 3.9
  14286. Holding the podule with the 64-way-connector towards you and the print
  14287. header at the right, you can place the jumper vertically at the right
  14288. bottom of the print header.
  14289. 3.9
  14290. Now you can use the module. There is a SWI included:
  14291. 3.9
  14292. ElektorSampler_Sample (&500)
  14293. 3.9
  14294. R0 = Start address of the sample buffer
  14295. 3.9
  14296. R1 = End address of the sample buffer
  14297. 3.9
  14298. R2 = Sample time in µs
  14299. 3.9
  14300. R3 = Minimum level to start sampling
  14301. 3.9
  14302. R4 : bit 0: This bit defines the quality of the sample. Low quality
  14303. sampling must be used unless you are prepared to allow the screen to be
  14304. disabled. 0 = high quality sampling, 1 = low quality sampling.
  14305. 3.9
  14306.    bit 1: This bit defines whether the low order byte of the address
  14307. where the sample is written to, must be placed on the userport or not.
  14308. This enables you to take multi-channel samples (e.g. stereo) using an
  14309. analogue multiplexer (e.g. HEF 4051). When you’re not using this option,
  14310. leave the bit ‘0’. 0 = no output to the userport, 1 = output to the
  14311. userport
  14312. 3.9
  14313.    Leave unused bits ‘0’ for upward compatibility
  14314. 3.9
  14315. After calling this SWI, the screen will be disabled during the sampling.
  14316. While waiting for the minimum level, the border will be coloured yellow
  14317. − whilst sampling, the border will be red. As long as the border is
  14318. yellow, you can quit by pressing <escape>. The buffer will be filled
  14319. with linear 8-bit signed numbers.
  14320. 3.9
  14321. The minimum sample-time that can be used on a normal Archimedes is about
  14322. 9 µs. The minimum sample-time that can be used with the ZN427 (the ADC)
  14323. is approx. 12 µs.
  14324. 3.9
  14325. The module could be used with the Armadeus sampler if Armadeus software
  14326. were suitably modified. Since Armadeus is written in BASIC this should
  14327. be possible.
  14328. 3.9
  14329. As far as I’m concerned this module may be copied freely provided that
  14330. my name, as author, remains within the software.
  14331. 3.9
  14332. Questions or suggestions? You can contact me via Archive.
  14333. 3.9
  14334. To conserve space, we have stripped the comments out of this listing.
  14335. The full commented listing is available on the monthly program disc.
  14336. 3.9
  14337.  10 REM >SamplerSrc
  14338. 3.9
  14339.  20 REM Written by J.P.Hendrix
  14340. 3.9
  14341.  30 start=4:end=10:speed=9:ioc=8
  14342. 3.9
  14343. :rd427=5:wr427=6:bs6522=7:level=11
  14344. 3.9
  14345. :flags=12
  14346. 3.9
  14347.  40 DIM Code 1000
  14348. 3.9
  14349.  50 FOR Pass=4 TO 7 STEP 3
  14350. 3.9
  14351.  60 P%=0
  14352. 3.9
  14353.  70 O%=Code
  14354. 3.9
  14355.  80 [   OPT   Pass
  14356. 3.9
  14357.  90     EQUD  0
  14358. 3.9
  14359. 100     EQUD  0
  14360. 3.9
  14361. 110     EQUD  0
  14362. 3.9
  14363. 120     EQUD  0
  14364. 3.9
  14365. 130     EQUD  Title
  14366. 3.9
  14367. 140     EQUD  Help
  14368. 3.9
  14369. 150     EQUD  0
  14370. 3.9
  14371. 160     EQUD  &500
  14372. 3.9
  14373. 170     EQUD  Handler
  14374. 3.9
  14375. 180     EQUD  Table
  14376. 3.9
  14377. 190     EQUD  0
  14378. 3.9
  14379. 200
  14380. 3.9
  14381. 210     EQUS  “Elektor Sampler
  14382. 3.9
  14383.  Module 1.03  (c) copyright
  14384. 3.9
  14385. 22 Apr 1990 by J.P. Hendrix“
  14386. 3.9
  14387. 220
  14388. 3.9
  14389. 230 .YelBorder
  14390. 3.9
  14391. 240     EQUB  0
  14392. 3.9
  14393. 250     EQUB  24
  14394. 3.9
  14395. 260     EQUB  255
  14396. 3.9
  14397. 270     EQUB  255
  14398. 3.9
  14399. 280     EQUB  0
  14400. 3.9
  14401. 290     ALIGN
  14402. 3.9
  14403. 300
  14404. 3.9
  14405. 310
  14406. 3.9
  14407. 320 .Handler
  14408. 3.9
  14409. 330     STMFD R13!,{r0-r12 ,R14}
  14410. 3.9
  14411. 340     CMP   R11,#&00
  14412. 3.9
  14413. 350     BNE   UnknownSWI
  14414. 3.9
  14415. 360     MOV   flags,R4
  14416. 3.9
  14417. 370     MOV   start,R0
  14418. 3.9
  14419. 380     MOV   end,R1
  14420. 3.9
  14421. 390     MOV   speed,R2,LSL #1
  14422. 3.9
  14423.  400     SUB   speed,speed,#2
  14424. 3.9
  14425.  410     AND   level,R3,#&7F
  14426. 3.9
  14427.  420     STMFD R13!,*{t ,end,speed}
  14428. 3.9
  14429.  430     SWI   “I/O_Podule_Hardware”
  14430. 3.9
  14431.  440     BIC   R0,R1,#&00FF0000
  14432. 3.9
  14433.  450     ORR   wr427,R0,#%000<<11
  14434. 3.9
  14435.  460     ORR   rd427,R0,#%010<<11
  14436. 3.9
  14437.  470     ORR   bs6522,R1,#%101<<11
  14438. 3.9
  14439.  480     MOV   ioc,#&3200000
  14440. 3.9
  14441.  490     STMFD R13!,{wr427 ,rd427,
  14442. 3.9
  14443. bs6522,ioc}
  14444. 3.9
  14445.  500
  14446. 3.9
  14447.  510     MOV   R0,#0
  14448. 3.9
  14449.  520     MOV   R1,#3072
  14450. 3.9
  14451.  530     TST   flags,#1
  14452. 3.9
  14453.  540     SWIEQ “XOS_UpdateMEMC”
  14454. 3.9
  14455.  550
  14456. 3.9
  14457.  560     MOV   R0,#0
  14458. 3.9
  14459.  570     MOV   R1,#24
  14460. 3.9
  14461.  580     SWI   “OS_ReadPalette”
  14462. 3.9
  14463.  590     ADR   R0,OrgColour
  14464. 3.9
  14465.  600     MOV   R2,R2,LSR #8
  14466. 3.9
  14467.  610     STRB  R2,[R0,#2]!
  14468. 3.9
  14469.  620     MOV   R2,R2,LSR #8
  14470. 3.9
  14471.  630     STRB  R2,[R0,#1]!
  14472. 3.9
  14473.  640     MOV   R2,R2,LSR #8
  14474. 3.9
  14475.  650     STRB  R2,[R0,#1]!
  14476. 3.9
  14477.  660
  14478. 3.9
  14479.  670     MOV   R0,#12
  14480. 3.9
  14481.  680     ADR   R1,YelBorder
  14482. 3.9
  14483.  690     SWIEQ “OS_Word”
  14484. 3.9
  14485.  700
  14486. 3.9
  14487.  710     MOV   R1,#&0C
  14488. 3.9
  14489.  720     SWI   “OS_ServiceCall”
  14490. 3.9
  14491.  730
  14492. 3.9
  14493.  740     LDMFD R13!,{wr427 ,rd427,
  14494. 3.9
  14495. bs6522,ioc}
  14496. 3.9
  14497.  750
  14498. 3.9
  14499.  760     MOV   R0,#&00
  14500. 3.9
  14501.  770     STRB  R0,[ioc,#&38]
  14502. 3.9
  14503.  780
  14504. 3.9
  14505.  790
  14506. 3.9
  14507.  800     MOV   R0,#SamplerEnd-
  14508. 3.9
  14509. SamplerBegin
  14510. 3.9
  14511.  810     MOV   R1,#&1C
  14512. 3.9
  14513.  820     ADR   R2,SamplerBegin
  14514. 3.9
  14515.  830 .PokeLoop
  14516. 3.9
  14517.  840     LDR   R3,[R2,R0]
  14518. 3.9
  14519.  850     STR   R3,[R1,R0]
  14520. 3.9
  14521.  860     SUBS  R0,R0,#4
  14522. 3.9
  14523.  870     BPL   PokeLoop
  14524. 3.9
  14525.  880
  14526. 3.9
  14527.  890     LDMFD R13!,*{t ,end,speed}
  14528. 3.9
  14529.  900
  14530. 3.9
  14531.  910
  14532. 3.9
  14533.  920     TST   flags,#2
  14534. 3.9
  14535.  930     MOV   R0,#255
  14536. 3.9
  14537.  940     MOVEQ R0,#0
  14538. 3.9
  14539.  950     STRB  R0,[bs6522,#02*4]
  14540. 3.9
  14541.  960     AND   R0,speed,#&FF
  14542. 3.9
  14543.  970     STRB  R0,[bs6522,#06*4]
  14544. 3.9
  14545.  980     MOV   R0,speed,LSR #8
  14546. 3.9
  14547.  990     STRB  R0,[bs6522,#07*4]
  14548. 3.9
  14549. 1000     MOV   R0,#&40
  14550. 3.9
  14551. 1010     STRB  R0,[bs6522,#11*4]
  14552. 3.9
  14553. 1020     MOV   R0,#&00
  14554. 3.9
  14555. 1030     STRB  R0,[bs6522,#13*4]
  14556. 3.9
  14557. 1040     MOV   R0,#&C0
  14558. 3.9
  14559. 1050     STRB  R0,[bs6522,#14*4]
  14560. 3.9
  14561. 1060     AND   R0,speed,#&FF
  14562. 3.9
  14563. 1070     STRB  R0,[bs6522,#04*4]
  14564. 3.9
  14565. 1080
  14566. 3.9
  14567. 1090     STRB  R0,[wr427]
  14568. 3.9
  14569. 1100 .WaitLevel
  14570. 3.9
  14571. 1110     SWI   “OS_ReadEscapeState”
  14572. 3.9
  14573. 1120     BCS   Exit
  14574. 3.9
  14575. 1130
  14576. 3.9
  14577. 1140     LDRB  R0,[rd427]
  14578. 3.9
  14579. 1150     STRB  R0,[wr427]
  14580. 3.9
  14581. 1160     TST   R0,#&80
  14582. 3.9
  14583. 1170     RSBEQ R0,R0,#&100
  14584. 3.9
  14585. 1180     AND   R0,R0,#&7F
  14586. 3.9
  14587. 1190     CMP   level,R0
  14588. 3.9
  14589. 1200     BHI   WaitLevel
  14590. 3.9
  14591. 1210     STRB  R0,[wr427]
  14592. 3.9
  14593. 1220
  14594. 3.9
  14595. 1230     SWI   “OS_IntOff”
  14596. 3.9
  14597. 1240
  14598. 3.9
  14599. 1250     TST   flags,#1
  14600. 3.9
  14601. 1260     MOV   R0,#12
  14602. 3.9
  14603. 1270     ADR   R1,RedBorder
  14604. 3.9
  14605. 1280     SWIEQ “OS_Word”
  14606. 3.9
  14607. 1290
  14608. 3.9
  14609. 1300     MOV   R0,speed,LSR #8
  14610. 3.9
  14611. 1310     STRB  R0,[bs6522,#05*4]
  14612. 3.9
  14613. 1320
  14614. 3.9
  14615. 1330     MOV   R0,#&40
  14616. 3.9
  14617. 1340     STRB  R0,[ioc,#&38]
  14618. 3.9
  14619. 1350 .SampleLoop
  14620. 3.9
  14621. 1360     CMP   end,start
  14622. 3.9
  14623. 1370     BPL   SampleLoop
  14624. 3.9
  14625. 1380
  14626. 3.9
  14627. 1390     MOV   R0,#&00
  14628. 3.9
  14629. 1400     STRB  R0,[ioc,#&38]
  14630. 3.9
  14631. 1410 .Exit
  14632. 3.9
  14633. 1420     MOV   R0,#&7F
  14634. 3.9
  14635. 1430     STRB  R0,[bs6522,#14*4]
  14636. 3.9
  14637. 1440     MOV   R0,#&00
  14638. 3.9
  14639. 1450     STRB  R0,[bs6522,#13*4]
  14640. 3.9
  14641. 1460
  14642. 3.9
  14643. 1470     MOV   R1,#&0B
  14644. 3.9
  14645. 1480     SWI   “OS_ServiceCall”
  14646. 3.9
  14647. 1490     SWI   “OS_IntOn”
  14648. 3.9
  14649. 1500
  14650. 3.9
  14651. 1510     MOV   R0,#0
  14652. 3.9
  14653. 1520     STRB  R0,[bs6522,#02*4]
  14654. 3.9
  14655. 1530
  14656. 3.9
  14657. 1540     MOV   R0,#3072
  14658. 3.9
  14659. 1550     MOV   R1,#3072
  14660. 3.9
  14661. 1560     TST   flags,#1
  14662. 3.9
  14663. 1570     SWIEQ “OS_UpdateMEMC”
  14664. 3.9
  14665. 1580
  14666. 3.9
  14667. 1590     MOV   R0,#12
  14668. 3.9
  14669. 1600     ADR   R1,OrgColour
  14670. 3.9
  14671. 1610     SWIEQ “OS_Word”
  14672. 3.9
  14673. 1620
  14674. 3.9
  14675. 1630     MOV   R0,#124
  14676. 3.9
  14677. 1640     SWI   “OS_Byte”
  14678. 3.9
  14679. 1650
  14680. 3.9
  14681. 1660     LDMFD R13!,{r0-r12 ,PC}^
  14682. 3.9
  14683. 1670
  14684. 3.9
  14685. 1680 .UnknownSWI
  14686. 3.9
  14687. 1690     LDMFD R13!,{r0-r12 ,R14}
  14688. 3.9
  14689. 1700     ADR   R0,Error
  14690. 3.9
  14691. 1710     ORRS  PC,R14,#2^28
  14692. 3.9
  14693. 1720
  14694. 3.9
  14695. 1730 .SamplerBegin
  14696. 3.9
  14697. 1740     STRB  start,[bs6522,#00*4]
  14698. 3.9
  14699. 1750     LDRB  R0,[rd427]
  14700. 3.9
  14701. 1760     EOR   R0,R0,#&80
  14702. 3.9
  14703. 1770     STRB  R0,[start],#1
  14704. 3.9
  14705. 1780     MOV   R0,#&C0
  14706. 3.9
  14707. 1790     STRB  R0,[bs6522,#13*4]
  14708. 3.9
  14709. 1800     STRB  R0,[wr427]
  14710. 3.9
  14711. 1810     SUBS  PC,R14,#4
  14712. 3.9
  14713. 1820 .SamplerEnd
  14714. 3.9
  14715. 1830
  14716. 3.9
  14717. 1840 .OrgColour
  14718. 3.9
  14719. 1850     EQUB  0
  14720. 3.9
  14721. 1860     EQUB  24
  14722. 3.9
  14723. 1870     EQUB  0
  14724. 3.9
  14725. 1880     EQUB  0
  14726. 3.9
  14727. 1890     EQUB  0
  14728. 3.9
  14729. 1900 .RedBorder
  14730. 3.9
  14731. 1910     EQUB  0
  14732. 3.9
  14733. 1920     EQUB  24
  14734. 3.9
  14735. 1930     EQUB  255
  14736. 3.9
  14737. 1940     EQUB  0
  14738. 3.9
  14739. 1950     EQUB  0
  14740. 3.9
  14741. 1960
  14742. 3.9
  14743. 1970 .Table
  14744. 3.9
  14745. 1980 .Title   EQUS  “ElektorSampler”
  14746. 3.9
  14747. +CHR$(0)
  14748. 3.9
  14749. 1990     EQUS  “Sample”+CHR$(0)
  14750. 3.9
  14751. +CHR$(0)
  14752. 3.9
  14753. 2000 .Help
  14754. 3.9
  14755. 2010     EQUS  “Elektor Sampler”+CHR$
  14756. 3.9
  14757. (9)+“1.03 (22 Apr 1990)”+CHR$(0)
  14758. 3.9
  14759. 2020 .Error
  14760. 3.9
  14761. 2030     EQUD  1
  14762. 3.9
  14763. 2040     EQUS  “Unknown Sampler SWI”
  14764. 3.9
  14765. +CHR$(0)
  14766. 3.9
  14767. 2050 ]
  14768. 3.9
  14769. 2060 NEXT
  14770. 3.9
  14771. 2070
  14772. 3.9
  14773. 2080 SYS “OS_File”,10,“ElektorSam”
  14774. 3.9
  14775. ,&FFA,,Code,O%
  14776. 3.9
  14777. •   Extra Speed in high res modes − You can use SWI “OS_UpdateMEMC” to
  14778. deny VIDC DMA access to the video RAM, which returns to the processor
  14779. the bus bandwidth that was being used by the video system. Turning off
  14780. VIDC’s access to the memory blanks the screen but makes the machine go
  14781. faster even than in MODE 0. To kill VIDC’s access to memory: SYS
  14782. “OS_UpdateMEMC”,0, 1024 To re-enable access use SYS “OS_Update
  14783. MEMC”,1024,1024.
  14784. 3.9
  14785. While the screen is thus disabled, you can still write to it as normal
  14786. and the results will be there when it is switched back on. This short
  14787. program shows the enormous speed gains possible (49% in MODE 15, 120% in
  14788. MODE 24) − it can reduce by a third, the time taken for a MODE 15 ray
  14789. trace. Sean Kelly
  14790. 3.9
  14791.  10 mode=MODE
  14792. 3.9
  14793.  20 MODE 0
  14794. 3.9
  14795.  30 I%=0: T%=TIME
  14796. 3.9
  14797.  40 REPEAT: I%+=1: UNTIL TIME>=T%+100
  14798. 3.9
  14799.  50 MODE mode
  14800. 3.9
  14801.  60 J%=0: T%=TIME
  14802. 3.9
  14803.  70 REPEAT: J%+=1: UNTIL TIME>=T%+100
  14804. 3.9
  14805.  80 SYS “OS_UpdateMEMC”,0,1<<10
  14806. 3.9
  14807.  90 K%=0: T%=TIME
  14808. 3.9
  14809. 100 REPEAT: K%+=1: UNTIL TIME>=T%+100
  14810. 3.9
  14811. 110 SYS “OS_UpdateMEMC”,1<<10,1<<10
  14812. 3.9
  14813. 120 PRINT‘“Loops per second:”’
  14814. 3.9
  14815. 130 PRINT“Normal mode 0 ”;I%
  14816. 3.9
  14817. 140 PRINT“Normal mode ”;mode;“ ”;J%
  14818. 3.9
  14819. 150 PRINT“Blanked mode ”;mode;“ ”;K%
  14820. 3.9
  14821. 160 PRINT“Speed up ”;(K%-J%)/J%*100
  14822. 3.9
  14823. ;“%”
  14824. 3.9
  14825. •   FormEd − I was very interested to see the tip on !FormEd in the May
  14826. issue of Archive which really does make it easier to use. However, there
  14827. is a slight snag with it as published as it is possible to close the
  14828. sprite viewing window which cannot then be re-opened. Also, it is
  14829. possible to activate the ‘Tool’ window which allows editing of the
  14830. sprites if the following changes are made to the !RunImage file.
  14831. 3.9
  14832. 1890   DATA “Load templates>m_templates%
  14833. 3.9
  14834. ,Save templates>m_Savetemp%, Show Sprites, Show Toolbox#, Quit“
  14835. 3.9
  14836. 3090   ELSE PROCmergesprites (FNstring0
  14837. 3.9
  14838. (q%+44)):PROCspriteinfo
  14839. 3.9
  14840. 9781   WHEN 4 : PROCspriteinfo
  14841. 3.9
  14842. 9782   WHEN 5 : PROCencodepal (0,15) :
  14843. 3.9
  14844.  PROCfront (palette%) : PROChtpal
  14845. 3.9
  14846. 9790   WHEN 6 : PROCfinish : END
  14847. 3.9
  14848. Line 1890 adds two new options to the iconbar menu (‘Show Sprites’ and
  14849. ‘Show Toolbox’). Line 3090 has the REM removed which allows merging of
  14850. sprite files. Lines 9781 and 9782 are new and implement the opening of
  14851. the sprite and tool win-dows. Line 9790 needs changing as ‘Quit’ is now
  14852. the sixth item on the menu.
  14853. 3.9
  14854. Some of the sprite editing routines seem to be miss-ing from the
  14855. !RunImage file (such as the ‘spray can’) so I just created a new blank
  14856. sprite and altered the template file so that the non-working options
  14857. don’t appear!
  14858. 3.9
  14859. As noted in the magazine, !Paint is better for creating sprites but
  14860. these simple changes make !FormEd much more useful. One benefit is that
  14861. the sprites edited in !FormEd are displayed in the windows where they
  14862. will actually appear when the application runs. Paul Hobbs
  14863. 3.9
  14864. •   Function key strips − In the past, many have tried to write a
  14865. program which generates one or more function key-strips. In most cases,
  14866. the graph-ics were not quite satisfying. When using MS-DOS software, the
  14867. problem arises that you really need four rows (instead of the standard
  14868. three) to cater for all possibilities: F-key, <shift-F-key>, <ctrl-F-
  14869. key> and <alt-F-key>. To solve this problem I have made two draw-files,
  14870. one for a 3-row function key-strip and one for a 4-row function key-
  14871. strip.
  14872. 3.9
  14873. Both files require the presence of the font ‘Hom-erton.Medium’.
  14874. 3.9
  14875. As an example, I have made a function key-strip for the MS-DOS program
  14876. WordPerfect version 4.2. This file also requires the presence of the
  14877. font ‘Cor-pus.Medium’.
  14878. 3.9
  14879. From where I stand, I find the result of the Drawfiles better than what
  14880. I’ve seen so far. (Available on the monthly program disc.) Maurice
  14881. Hendrix
  14882. 3.9
  14883. •   Hard disc and memory usage − I was interested to read about module
  14884. killing in your First Word Plus column. I have a 1Mb machine and need
  14885. all the memory I can get, so I have already experimented with simple
  14886. module killing routines.
  14887. 3.9
  14888. Firstly, I altered all my !run files to keep track of Clib, FPE and the
  14889. other common modules and kill them if they are no longer needed. This
  14890. used a sys-tem variable for each module that stored the number of
  14891. applications using it. This worked but had several drawbacks. The
  14892. changing of all !run files did take a lot of work and each application
  14893. left open its !run file until it was quit. As a result, I decided that
  14894. man-ual module killing or Resetting is a better solution. One interest
  14895. ing point highlighted by this, is that !Edit suffers a fatal error and
  14896. all work is lost if the FPE is killed even though it does not need it!
  14897. 3.9
  14898. The one thing that I have found extremely useful is the setting up of a
  14899. good hard disc structure and a !boot file. This has saved memory both on
  14900. the disc due to duplication and when loading applications due to fewer
  14901. icons needed to be loaded. It has also given me quicker and easier
  14902. access to programs via the new task option.
  14903. 3.9
  14904. One thing that should be noted by hard disc users is that although
  14905. directories allow a nice structure, they do use memory and also slow the
  14906. access to certain parts of the disc, so don’t go overboard creating
  14907. directories for everything.
  14908. 3.9
  14909. I will try to explain the structure of my hard disc. I have in my root
  14910. directory the following directories and a !boot file.
  14911. 3.9
  14912. !fonts   Outline Fonts
  14913. 3.9
  14914. !system   System Modules
  14915. 3.9
  14916. Art   Artisan, !Paint etc
  14917. 3.9
  14918. Cad   !Draw etc
  14919. 3.9
  14920. Games   !Triv etc
  14921. 3.9
  14922. Library   Command line programs
  14923. 3.9
  14924. Misc   My working directory
  14925. 3.9
  14926. Text/DTP   !Edit, !Impress, !PrinterDM etc
  14927. 3.9
  14928. Utilities   !FormEd, !Hand, !Configure etc
  14929. 3.9
  14930. Others could include Sound, spreadsheets and lang-uages etc. Try to keep
  14931. associated programs together but don’t have directories with lots of
  14932. applications as all the icons are loaded and waste memory. Keep commonly
  14933. used programs one level down and others in sub directories. This is
  14934. especially true for the utilities directory.
  14935. 3.9
  14936. The next stage is to move all the commonly used modules into the
  14937. !system.modules directory. This avoids duplication, ensures a module
  14938. update is used by all programs and also simplifies things. The most
  14939. common modules found are FPEmulator and Clib. Well-written programs will
  14940. already use !System but some don’t and they will need their !run files
  14941. mod-ified. The rmload commands need to load from :4.$. !system.modules.
  14942. If the !run file does not contain the rmload commands it is probably
  14943. best to leave its modules where they are unless you know what you are
  14944. doing. Finding modules can be done using simple utilities such as !hand
  14945. (helping hand) from the Data Store to search for the file type &FFA.
  14946. 3.9
  14947. Probably the most important part of a good hard disc setup is its !boot
  14948. file. This gives the user an ideal chance to customise their system. My
  14949. !boot file shown below sets up various system variables that perform a
  14950. range of functions.
  14951. 3.9
  14952. | !Boot file for hard disc
  14953. 3.9
  14954. | Set variables for directory abbrevs
  14955. 3.9
  14956. Set r adfs::BigHardNo1.$.
  14957. 3.9
  14958. SetMacro u <r>Utilities.
  14959. 3.9
  14960. SetMacro a <r>ART.
  14961. 3.9
  14962. SetMacro d <r>Text/DTP.
  14963. 3.9
  14964. SetMacro g <r>GAMES.
  14965. 3.9
  14966. SetMacro System$Path <r>!System.
  14967. 3.9
  14968. SetMacro sm <r>!System.Modules
  14969. 3.9
  14970. | Set Alias to emulate two common
  14971. 3.9
  14972.  Unix commands
  14973. 3.9
  14974. Set Alias$LS Cat %0
  14975. 3.9
  14976. Set Alias$CD Dir %0
  14977. 3.9
  14978. | Setup directories to be searched
  14979. 3.9
  14980.  for a run command (using abbreviations to keep line
  14981. 3.9
  14982.  to <255 chars )
  14983. 3.9
  14984. SetMacro Run$Path ,%.,<sm>.,<r>L*.,
  14985. 3.9
  14986. <d>1*.,<r>CA*.,<a>,<d>,<r>M*.,
  14987. 3.9
  14988. <d>PI*.,<r>PC.,<u>,<u>CT*.,<u>F*.,
  14989. 3.9
  14990. <u>A*.,<u>B*.,<u>C*.,<u>D*.,
  14991. 3.9
  14992. <u>FO*.,<u>L*.,<u>T*.,<u>M*.,<r>T*.,
  14993. 3.9
  14994. <r>S*.,<g>I*.,<g>B*.,<g>A*.,<d>!i*.
  14995. 3.9
  14996. | Setup directories to be searched
  14997. 3.9
  14998.  for a load command (using abbreviations to keep line
  14999. 3.9
  15000.  to <255 chars )
  15001. 3.9
  15002. Setmacro File$Path ,%.,<sm>.,
  15003. 3.9
  15004. <r>Library.,<u>L*.,<d>!i*.
  15005. 3.9
  15006. | run common applications !boot files
  15007. 3.9
  15008.  to emulate the system seeing the application without cluttering
  15009. 3.9
  15010.  the $ dir.
  15011. 3.9
  15012. <a>!Draw.!Boot
  15013. 3.9
  15014. <a>!Paint.!Boot
  15015. 3.9
  15016. <d>!Edit.!Boot
  15017. 3.9
  15018. <d>!Impress.!Boot
  15019. 3.9
  15020. <u>FILES.!SPARK.!BOOT
  15021. 3.9
  15022. | set any commonly used key strings
  15023. 3.9
  15024. Key 1 *DESKTOP|M
  15025. 3.9
  15026. Key 2 EDIT|M
  15027. 3.9
  15028. | run desktop and display root directory
  15029. 3.9
  15030. Desktop Filer_OpenDir adfs::BigHardNo1.$
  15031. 3.9
  15032. The !boot file starts by defining a series of system variables that are
  15033. to be used throughout the file. They include abbreviated variables to
  15034. represent commonly used pathnames. System$Path is also defined here.
  15035. 3.9
  15036. The next section defines two alias’s that emulate common Unix system
  15037. commands. This is only of use if you switch operating systems commonly
  15038. and tend to accidentally type in the wrong commands. A similar set could
  15039. also be set up for PC users although a clash of the “dir” command would
  15040. occur.
  15041. 3.9
  15042. The next two sections are similar and set up the vari-ables Run$Path and
  15043. File$Path. Firstly, Run$Path can be used to define all the directories
  15044. that you wish to be searched when a run program command is issued.
  15045. Similarly File$Path does the same for loading files. They both include
  15046. the first path which refers to the current directory.
  15047. 3.9
  15048. The system variables defined at the start have been used extensively and
  15049. the * wildcard to keep the line shorter than the 255 character maximum.
  15050. Be careful when using wildcards because a new directory could also match
  15051. the search instead of the intended directory. As an alternative to this,
  15052. a series of paths could be placed into system variables i.e. Run1$ Path,
  15053. Run2$Path etc and then added together to give the complete Run$Path. Be
  15054. careful when using sys-tem variables to get the correct punctuation.
  15055. Each path must end with a full stop “.” although this can been included
  15056. at the end of the system variables.
  15057. 3.9
  15058. The main reason for doing this is to allow the user to use the “New
  15059. Task” option of the task menu. If all the directories are correctly
  15060. listed in this section, you will be able to enter “!Edit” into the “New
  15061. Task” option and the program will install itself onto the icon bar. This
  15062. eliminates the need to know where in the directory structure it is. The
  15063. same goes for loading a program or module. You can now tuck away those
  15064. little used programs and still call them up as long as you know their
  15065. name. The general effect is the same as if everything is in the library
  15066. although loading commands can also be used.
  15067. 3.9
  15068. I have found it useful to emulate the system seeing commonly used
  15069. applications such as !Draw, !Paint and !Edit. To do this all you must do
  15070. is run each application’s !boot file. This will setup all the icons and
  15071. system variables. This means that, for example, a draw file can be
  15072. loaded without the application having being seen.
  15073. 3.9
  15074. A Hard disc !boot file is also the ideal place to set up any commonly
  15075. used key strings as well as loading any important modules.
  15076. 3.9
  15077. Finally, the desktop can be called and I find it useful to open up the
  15078. root directory. This can be done by the Filer_OpenDir command. Alterna
  15079. tively, another obey file can be run after the desktop has been entered
  15080. by the use of the -file option. If this is the case, it may be useful to
  15081. create an application called !boot and rename the !boot file to !run.
  15082. The second obey file can then be hidden inside this directory.
  15083. 3.9
  15084. To create and set up the !boot fileÉ (1) Run !Edit (2) Create obey file
  15085. (icon menu) (3) Type in !boot data (See above) (4) Save as !boot (in
  15086. root directory) (5) Press <f12> and type
  15087. 3.9
  15088. OPT4,2
  15089. 3.9
  15090. Configure drive 4
  15091. 3.9
  15092. Configure boot
  15093. 3.9
  15094. Philip Armstrong
  15095. 3.9
  15096. •   Hourglass − A quick hint for those writing a BASIC program using the
  15097. Hourglass. Often, if an error is generated from BASIC when the hourglass
  15098. is being used, it stays on the screen. This can be cured by
  15099. SYS“Hourglass_Smash” or, if you have already done your error checking,
  15100. SYS“” causes a system error which has the same effect. Philip Armstrong
  15101. 3.9
  15102. •   INKEY problems − If you have a loop which executes continuously and
  15103. rapidly, you might want to use:
  15104. 3.9
  15105. key%=INKEY(0):IF key%=64
  15106. 3.9
  15107. PROC_Fred ELSE IF
  15108. 3.9
  15109. key%=65 PROC_Edith
  15110. 3.9
  15111. to detect a keypress. However, remember that you should have only one
  15112. such INKEY statement in the loop even if you want to cater for many
  15113. different key presses because a single keypress can only be det-ected by
  15114. one INKEY(0) instruction. Steve Kirkby.
  15115. 3.9
  15116. •   Keyboard cleaning (A300/400 series) − The keyboard that is supplied
  15117. with the computer is of the open Printed Circuit Board type. That is, a
  15118. conduc-tive film on the base of each key makes contact with large solder
  15119. plated areas called lands on the main PCB. This makes for a cheap and
  15120. reliable keyboard but it does have its problems because of its exposure
  15121. to the air in that dust can and does get in.
  15122. 3.9
  15123. I’ve had my Archimedes A310 for over 2 years now and my wife lets it
  15124. live in the living room with us. I suppose I should keep the keyboard
  15125. covered with something when not in use but I’ve never got round to doing
  15126. this. Consequently, the keyboard has had to put up with me eating
  15127. biscuits, sandwiches and other unmentionables while typing. I suppose
  15128. the inevitable had to happen and one day the keyboard rebelled! I had
  15129. began to noticed over a period of several days that the space bar and
  15130. left cursor key where playing up until they refused to work at all. Of
  15131. course, this happened a week after the guarantee had run out!
  15132. 3.9
  15133. Visions of massive bills loomed before me so I decided to undertake the
  15134. task of opening the keyboard case and having a look! I first switched
  15135. off the Archimedes and unplugged the keyboard cord from the computer. I
  15136. removed the mouse and turned the keyboard face down with the Reset
  15137. button towards me. I noted that eight large, long hex screws held the
  15138. back section of the keyboard case on. After removing these I just lifted
  15139. the back section away and placed it somewhere safe. The Reset button
  15140. looked slight delicate so I removed it by simply pulling it off. I made
  15141. a mental note of which way round it came off.
  15142. 3.9
  15143. I had a good look and there were seven large, short hex screws holding
  15144. the top keyboard casing to the main PCB frame. I removed these screws
  15145. and lifted the PCB off, putting the top casing away to another safe
  15146. place. I was half expecting the key tops and switches to try and escape
  15147. at this point but they are firmly attached to a metal frame!
  15148. 3.9
  15149. Biscuit supply − Turning the PCB over and looking at the top surface
  15150. between the key tops I was amazed to see a surprising amount of dust and
  15151. what looked like a secret supply of Burtons biscuits! I duly removed
  15152. this with a dry paper towel and again placed the board face down after I
  15153. had a good look at the electronics on the board, but I resisted the
  15154. temptation to touch (I suggest you do the same).
  15155. 3.9
  15156. All that now remained to do was remove the twenty small hex screws
  15157. holding the PCB to the switches. I started with the black screw at S94
  15158. position (this is written on the PCB) and noted that this was the only
  15159. small screw not actually threaded on to a switch. I removed the other
  15160. nineteen screws and gently lifted the PCB off the metal frame holding
  15161. the keys on.
  15162. 3.9
  15163. The contact plates of all the key switches where now exposed and they
  15164. consisted of thin silver discs which when pressed make contact with the
  15165. PCB lands and therefore closed the contacts. These plates looked
  15166. extremely fragile but clean so I left them well alone!
  15167. 3.9
  15168. Cleaning − The PCB lands were dirty, especially around the Space and
  15169. Left Cursor key positions and, being very careful not to put any grease
  15170. from my paws onto the board, I wiped the entire PCB with a dry paper
  15171. towel. Reassembling the keyboard was easy. I just placed the PCB face
  15172. down on to the metal frame holding the keys and lined up the small
  15173. screws positions. A good tip in reassembling something like this is to
  15174. begin placing the screws in from opposite ends and not to tighten up any
  15175. of the screws until they are all in place.
  15176. 3.9
  15177. Once that was done, making sure that the black screw was in the correct
  15178. position, I placed the top section face down on the work table and
  15179. positioned the assembly down onto it, again fitting the seven large
  15180. short hex screws in place. I refitted the Reset moulding into place with
  15181. a resounding click and finished off by screwing down the last eight
  15182. large long hex screws into place. I turned the complete keyboard over
  15183. and plugged it back into the Archimedes and I’m glad to say it works a
  15184. treat! Stuart Halliday
  15185. 3.9
  15186. •   OsSys module − Shortly after the release of the OsSys module, I was
  15187. told that one couldn’t use SWI’s that needed a pointer to a buffer
  15188. because no such facilities where made available. I argued that this was
  15189. very easily implemented and changed the module accordingly. When doing
  15190. this, I also noticed a minor bug in the module. When a string longer
  15191. than 300 characters is passed, the module is supposed to generate an
  15192. error. This works fine but, due to a problem during the development, I
  15193. mistakenly thought that the pipeline was playing up when generating this
  15194. error. (Not all of the error text was displayed: the first 4 characters
  15195. were missing). I solved this by adding 4 to the PC when generating the
  15196. error. Quite wrong of course. I discovered that not the pipeline but I
  15197. was to blame. I had forgotten to put the error number (4 bytes) in
  15198. before the error message.
  15199. 3.9
  15200. To upgrade the OsSys module to version 1.8, load the source code into
  15201. BASIC V and change/add the following lines:
  15202. 3.9
  15203. 10 REM >OsSysSrc18
  15204. 3.9
  15205. 350 EQUS “1.80 (05 Apr 1990)”
  15206. 3.9
  15207. 600 MOV R3,#500
  15208. 3.9
  15209. 610 SWI “OS_Module”
  15210. 3.9
  15211. 611 ;By claiming a larger workarea than required by the
  15212. 3.9
  15213. 612 ;the module, you can use the top of the work area to
  15214. 3.9
  15215. 613 ;create workspace for SWI calls that require pointers to
  15216. 3.9
  15217. 614 ;such a workspace. Eg. calls to WIMP or VDU.
  15218. 3.9
  15219. 650 EQUS “OsSWICalls v1.80 by M. Hendrix => Installed”
  15220. 3.9
  15221. 2510 REM remove this line. It’s incorrect
  15222. 3.9
  15223. 3180 EQUD &01 ;Error number
  15224. 3.9
  15225. Save and run the program.
  15226. 3.9
  15227. The new module will claim more workspace than it actually needs. The top
  15228. 200 bytes can thus be used for SWI buffers. You can use *MEMORYA to edit
  15229. the buffer(s). If you need more space for a buffer just change the value
  15230. #500 in line 600 to your desired amount of memory. (Don’t forget to add
  15231. 300 bytes for the module itself!) Maurice Hendrix
  15232. 3.9
  15233. •   Random number generator − If you use the use the random number
  15234. generator (RND in BASIC), it must be initialised with something really
  15235. random, such as the current time. Otherwise, the same num-bers will be
  15236. produced every time the program is run. The otherwise excellent game
  15237. !Yahtzee on Care-ware 4 suffers from this problem but it can easily be
  15238. solved: insert the line 123 Junk = RND(-TIME) and then every game is
  15239. different. Jonathan Puttock
  15240. 3.9
  15241. •   The Dreaded CLI! − One of the nicest aspects about the Archimedes is
  15242. the Configure command. This command is often forgotten about as it lies
  15243. in that terrible place called the Command Line Interpreter (CLI)
  15244. accessed by pressing the dreaded function 12 key. One of the many things
  15245. that the Configure command does and seems to get lain aside is the
  15246. WimpFlags options. This very useful command determines the action of all
  15247. the windows used by RISC-OS in as far as it controls the two types of
  15248. window movement, resizing and scrolling. What two types?, I hear you
  15249. ask.
  15250. 3.9
  15251. Status − Well if you’ve never used the WimpFlags command before then you
  15252. have probably put up with the kind of windows which, when you change
  15253. their size or move them, all you get is a large dotted outline which
  15254. turns into a solid window when you release <select> or <adjust>. Now you
  15255. have an alternative. If you first press F12 from the Desktop and type in
  15256. *STATUS <return> you’ll get a large list of items and near the end is a
  15257. line Wimpflags x, this x number (it may be 0) is actually the decimal
  15258. representative of a binary pattern of this number which switches on or
  15259. off the various options under this command.
  15260. 3.9
  15261. If you type in *HELP WimpFlags <return> then the following should
  15262. appear:
  15263. 3.9
  15264. *HELP WimpFlags
  15265. 3.9
  15266. ==> Help on keyword WimpFlags
  15267. 3.9
  15268. *Configure WimpFlags sets the
  15269. 3.9
  15270.  default actions when dragging
  15271. 3.9
  15272. windows, as follows:
  15273. 3.9
  15274. bit 0 set: continuous window movement
  15275. 3.9
  15276. bit 1 set: continuous window resizing
  15277. 3.9
  15278. bit 2 set: continuous horizontal scroll
  15279. 3.9
  15280. bit 3 set: continuous vertical scroll
  15281. 3.9
  15282. bit 4 set: don’t beep when error box
  15283. 3.9
  15284.  appears
  15285. 3.9
  15286. Syntax: *Configure WimpFlags <number>
  15287. 3.9
  15288. Simply put, if you where to type in say:
  15289. 3.9
  15290. *CONFIGURE WimpFlags 1 <return>
  15291. 3.9
  15292. and press <ctrl-break> (you need to do this each time you enter new
  15293. values to actually change the values!) you’ll see that if you move any
  15294. window it will be instant! If you want to try some more ‘configuring’
  15295. try changing the WimpFlags to 2 to see only instant window resizing or 3
  15296. for both. (Don’t forget to press <ctrl-break> afterwards!) If you do not
  15297. like this new look, simply change Wimpflags back to 0. The next two
  15298. options concern the scroll bars and these are really useful. If you
  15299. change WimpFlags to 8 you’ll see that by dragging the pointer up and
  15300. down the vertical bar you’ll get a smooth scroll effect, much better
  15301. than constantly clicking the arrow icons! Try WimpFlags set to 4 for
  15302. horizontal scroll or even 12 for them both at the same time.
  15303. 3.9
  15304. Error − The last option just stops the error box beeping at you. Try
  15305. WimpFlags set to 16 and then Select an empty disc drive. Remember you
  15306. can combine any of these together by simply adding their numbers
  15307. together and configuring the WimpFlags. Try WimpFlags set to 31, this is
  15308. my favourite! Stuart Halliday
  15309. 3.9
  15310.  
  15311. • Arthur Fonts − when using the FontDes program supplied with Arthur
  15312. operating system, it is possible to vary the thickness of one or both
  15313. ends of the line.  This is achieved by using the adjust button when the
  15314. mouse is positioned over a line in a “char full” window (this then
  15315. highlights the line) and then pressing the menu button at either end of
  15316. the line.  This will bring up a ‘pen ratio’ window which allows you to
  15317. alter the percentage ratio of the pen at that point, the ratio is set by
  15318. clicking on the percentage window’s quit box.
  15319. 3.10
  15320.  
  15321. 3.10
  15322. • Extra Brushes for !Paint − you can add your own brushes to the !Paint
  15323. package by including the desired shapes in the ‘Sprites’ file i.e.
  15324. 3.10
  15325. (i) Open up the !Paint directory by double clicking on !Paint while
  15326. holding the shift button down
  15327. 3.10
  15328. (ii) Load the ‘Sprites’ file into !Paint
  15329. 3.10
  15330. (iii) Create the brush shapes you want in this file
  15331. 3.10
  15332. (iv) Save the ‘Sprites’ file
  15333. 3.10
  15334. Don’t forget to make a note of the names of the brushes you created so
  15335. that you can access them from the tools menu.  David Parker
  15336. 3.10
  15337.  
  15338. 3.10
  15339. • Hard Spaces can be entered using the <alt> key and typing <1><6><0> on
  15340. the numeric keypad but a much quicker way is just to type <alt><space>. 
  15341. Charles Moire
  15342. 3.10
  15343.  
  15344. 3.10
  15345. • Lightning strikes − Be warned!  Don’t leave your modem connected to
  15346. the phone line when there is an electrical storm.  I did and the spikes
  15347. that came up the phone line killed a new V22bis modem and the RS423 port
  15348. on the Archimedes!  David Leckie.
  15349. 3.10
  15350.  
  15351. 3.10
  15352. • Memory Saving − It is worth remembering that sprites with masks take
  15353. up twice as much room as those without.  If all sprites are altered with
  15354. !Paint to remove the mask, a considerable amount of memory can be saved. 
  15355. Ian Hamilton.
  15356. 3.10
  15357.  
  15358. 3.10
  15359. • Printing with 1M − when using Draw, Paint, Impression, Acorn DTP, etc
  15360. you can quit !PrinterDM (or  whatever printer driver you use) to reclaim
  15361. about 80k of RAM.  It would appear that these applications only need the
  15362. modules that remain in the RMA area after the !PrinterDM application has
  15363. been quit so all the print options are still available.  R J Denison
  15364. 3.10
  15365.  
  15366. 3.10
  15367. • Wimp Window Drawing − The usual construction for defining a graphic
  15368. window and drawing into it would look something like this:
  15369. 3.10
  15370.    DEFPROCgraphic_window
  15371. 3.10
  15372.    VDU26,5,24,graphicsbx%;graphicsby%;graphicstx%;graphicsty%
  15373. 3.10
  15374.    ORIGIN reportbx%-scrollx%,reportty%-scrolly%
  15375. 3.10
  15376.    ENDPROC
  15377. 3.10
  15378.  
  15379. 3.10
  15380.    DEFPROCdraw_text (x%,y%,text$)
  15381. 3.10
  15382.    MOVE x%,y% : PRINT text$
  15383. 3.10
  15384.    ENDPROC
  15385. 3.10
  15386.  
  15387. 3.10
  15388. This will work okay until the values in the origin statement exceed
  15389. 32767.  I found that I had blank screens in the middle of large reports. 
  15390. The following changes cured the problem:
  15391. 3.10
  15392.    DEFPROCgraphic_window
  15393. 3.10
  15394.    VDU26,5,24,graphicsbx%;graphicsby%;graphicstx%;graphicsty%
  15395. 3.10
  15396.    y%=reportty%-scrolly% : compensationy%=0
  15397. 3.10
  15398.    REPEAT
  15399. 3.10
  15400.    IF y%>32000 THEN y%-=32000 : compensationy%+=32000
  15401. 3.10
  15402.    UNTIL y%<=32000
  15403. 3.10
  15404.    ORIGIN reportbx%-scrollx%,y%
  15405. 3.10
  15406.    ENDPROC
  15407. 3.10
  15408.  
  15409. 3.10
  15410.    DEFPROCdraw_text (x%,y%,text$)
  15411. 3.10
  15412.    MOVE x%, y%+compensationy%: PRINT text$
  15413. 3.10
  15414.    ENDPROC
  15415. 3.10
  15416. Although you would have a problem in the x-direction, it is unlikely
  15417. that a window would be that wide.  A similar change could be applied if
  15418. this was necessary.  Ian Hamilton.
  15419. 3.10
  15420.  
  15421. • Blanking discs − (I’m sure we’ve had this before, but not everyong has
  15422. picked it up and I couldn’t find a reference to it in the Archive
  15423. database.)  If you have a disc that has lots of files on it and you try
  15424. to clear them all off by deleting them, it can take ages − it would be
  15425. quicker to reformat the disc.  Even quicker though is to get an existing
  15426. blank disc and do a backup from that to the disc to be blanked − it
  15427. takes just a couple of seconds.
  15428. 3.11
  15429. • ChkSpr − In answer to Ray Dawson’s plea for help about !ChkSpr
  15430. supplied on shareware disc 19:  if you open up the !ChkSpr directory,
  15431. amongst the files you will find one called ‘chkspr’ and one called
  15432. !Boot‘.  If these two files are copied into any Impression document
  15433. directory and if you then rename the document directory, instead of the
  15434. Impression sprite not appearing because the name no longer corresponds
  15435. to the document name (as normally happens) it will appear correctly. 
  15436. This is because the chkspr utility, when run by the new !Boot file,
  15437. checks the name of the first sprite in the sprite file and changes it if
  15438. the name is not the same as that of the document.  This utility can also
  15439. be used to keep the correct sprites for applications.  For example, when
  15440. developing an application, different versions may be kept, all with the
  15441. right sprite file.  Simon Burrows and Emmet Spier.
  15442. 3.11
  15443. • ColourTrans module − I have noticed that each of the printer drivers
  15444. on the RISC OS extras disc contain their own copy of the Colours module! 
  15445. This is at odds with the policy of storing all shared modules in the
  15446. !System directory (you will probably already have a copy of the Colours
  15447. module there − many applications use it).
  15448. 3.11
  15449. To avoid wasting disc space (though Colours uses little) you can remove
  15450. this module from within each printer drivers’ directory and edit the
  15451. !Run file for each driver to call Colours from the !System folder.
  15452. 3.11
  15453. i.e. in each !Run file the line
  15454. 3.11
  15455.    RMEnsure ColourTrans 0.52 RMLoad <PDriver$Dir>.Colours
  15456. 3.11
  15457. should be replaced with
  15458. 3.11
  15459.    RMEnsure ColourTrans 0.52 System:Modules.Colours
  15460. 3.11
  15461. To be even more correct two extra lines should also be added (e.g. like
  15462. the !Spark and !Draw applications).  The above on its own relies on the
  15463. desktop having already seen your !System directory, you should therefore
  15464. put the line
  15465. 3.11
  15466.    If“<System$Path>” = “” Then Error 0 System resources cannot be found
  15467. 3.11
  15468. before the changed line above to check that this is the case.  You
  15469. should also put the line
  15470. 3.11
  15471.    RMEnsure ColourTrans 0.52 Error You need ColourTrans 0.52 or later
  15472. 3.11
  15473. after the changed line − this will check that the module has been loaded
  15474. satisfactorily.
  15475. 3.11
  15476. The Printer Drivers on the original RISC-OS Application Disc I did not
  15477. load the Colours module when they were installed and so do not have this
  15478. problem.  Simon Butler.
  15479. 3.11
  15480. • Debugger/Dissassemble returns an incorrect length for SWI instructions
  15481. − it returns the length as one too many − you get an extra null
  15482. character on these instructions.  As all returned strings are null
  15483. terminated, I found it easier to scan for the null in order to find the
  15484. length.  The zero makes no difference to screen or printing, but if
  15485. written to a text file looks ugly in !Edit.  Kevin Quinn.
  15486. 3.11
  15487. • Desktop bug − There appears to be a fatal bug in the Window Manager of
  15488. RISC-OS 2.00.  It occurs when you drag a menu, and whilst you are
  15489. dragging it, press the <escape> key to remove it.  If you then stop
  15490. dragging the menu, the system will report an ‘Address exception at
  15491. &386BCIC’, the application which created the menu will die fatally and
  15492. most often, all the other applications will die as well, resulting in
  15493. the computer ‘bombing out’ of the desktop into the CLI.  Tom Lakofski.
  15494. 3.11
  15495. • DXF files − Users of DXF files which are comprised only of BLOCKS and
  15496. ENTITIES (or maybe just ENTITIES alone) will find that !Draw does not
  15497. enable the use of its facility for specifying font types when the DXF
  15498. file is just loaded.
  15499. 3.11
  15500. The inclusion of the code below (i.e. a TABLES section) appears to solve
  15501. this problem.  Of course !Draw must have previously ‘seen’ the relevant
  15502. !Fonts directory.  The full sequences for the sections, if all are
  15503. present is HEADER followed by TABLES, then BLOCKS + ENTITIES.  Jim
  15504. Markland.
  15505. 3.11
  15506.    0
  15507. 3.11
  15508.    SECTION
  15509. 3.11
  15510.    2
  15511. 3.11
  15512.    TABLES
  15513. 3.11
  15514.    0
  15515. 3.11
  15516.    TABLE
  15517. 3.11
  15518.    2
  15519. 3.11
  15520.    STYLE
  15521. 3.11
  15522.    70
  15523. 3.11
  15524.    20
  15525. 3.11
  15526.    40
  15527. 3.11
  15528.    0
  15529. 3.11
  15530.    41
  15531. 3.11
  15532.    1
  15533. 3.11
  15534.    50
  15535. 3.11
  15536.    0
  15537. 3.11
  15538.    71
  15539. 3.11
  15540.    0
  15541. 3.11
  15542.    3
  15543. 3.11
  15544.    STANDARD
  15545. 3.11
  15546.    0
  15547. 3.11
  15548.    ENDTAB
  15549. 3.11
  15550.    0
  15551. 3.11
  15552.    ENDSEC
  15553. 3.11
  15554. • Greek3 re-caching − To stop the Greek3 outline font supplied with
  15555. Impression from recaching itself too often all you have to do is rename
  15556. it from ‘Greek3’ to ‘Greek’.  Michael Ben-Gershon.
  15557. 3.11
  15558. • On/Off icons, for example option icons in windows, are implemented by
  15559. using the ‘S’ command in the validation string of an icon with
  15560. indirected text and sprites on.  FormEd will allow you to set these up −
  15561. switch on indirected stuff, put text (if any) into the text item, and
  15562. select sprite − don’t put anything in the sprite sub-menu writeable icon
  15563. and put the sprite name(s) in the indirected validation string, e.g.
  15564. ‘sopton,optoff’.  Then by inverting the icon’s inverted bit it will swap
  15565. over the icons − see the calls Wimp_SetIconState and Wimp_GetIconState
  15566. (pages 1211-1213 of PRM).  Details of validation strings are on pages
  15567. 1184-1187 of the PRM.  Kevin Quinn.
  15568. 3.11
  15569. • OS_Heap − While trying to use the Heap facility in RISC-OS, we found
  15570. that OS_Heap 6, which returns the size of a heap block, returns the size
  15571. including the word at the start containing length.  This is unexpected
  15572. given the Abstract Data Type philosophy that appears to have been used
  15573. for the rest of the system and means that the user knows where the
  15574. length of a block is stored and can read it without using OS_Heap 6 −
  15575. and incidentally, means Acorn can’t rewrite their Heap manager unless
  15576. this word is left in the same place.  James Chong.
  15577. 3.11
  15578. • RenderBender on SCSI hard disc drives.  As you will know, you cannot
  15579. access the hard drive, by using the HARD 4 icon.  Some of you may have
  15580. already tried unsuccessfully to alter the program, by altering the
  15581. variable HD% to 1, to try to force the program into recognising the hard
  15582. drive.  The following alterations should be made to the !Runfile, Render
  15583. and Anirout in the utilities directory.  The code will save all pictures
  15584. to the specified directory if you have not put the Render Bender
  15585. directory in $...
  15586. 3.11
  15587. For the Render program :
  15588. 3.11
  15589.    15 *SET RendHard1 SCSIFS::4.$.!Render
  15590. 3.11
  15591.    40 curd$=“4”:moder%=FALSE
  15592. 3.11
  15593.    15890 A%=32
  15594. 3.11
  15595.    15940 IF A%=32 AND HA%>0 GOTO 15920
  15596. 3.11
  15597.    16020 IF A%=32 THEN curd$=“4”:*SET REdrive SCSIFS::4.$.!Render
  15598. 3.11
  15599. For the Anirout program:
  15600. 3.11
  15601.    6800 IF A%=BE% THEN *SET REdrive SCSIFS::4.$.!Render
  15602. 3.11
  15603. You should then use the edit program to alter the !Run file as follows:
  15604. 3.11
  15605. The line that begins *IF obey$dir... should be changed to...
  15606. 3.11
  15607.    *IFobey$dir=“adfs::Render.$.!Render” THEN *SET RendHard1 SCSIFS::4.
  15608. 3.11
  15609.    $.!Render ELSE *SET RendHard1<Obey$Dir>
  15610. 3.11
  15611. The previous code may seem a bit long winded but I have unfortunately
  15612. not been able to get the *KILLADFS command to work with my version. 
  15613. Neil Berry.
  15614. 3.11
  15615. • Screen size − The screen size in O.S. co-ordinates may be found using
  15616. OS_ReadVduVariables and variable numbers 4 (XEigFactor),5(YEigFactor),11
  15617. (XWindLimit) and 12 (YWindLimit).  The last two are hidden over the page
  15618. and for a while I missed them (pages 345-348 and 350-352).  There is
  15619. also a message that the Wimp broadcasts when the user changes mode,
  15620. enabling your task to keep uptodate on screen sizes − important for drag
  15621. boxes amongst other things.  See page 1259.  Kevin Quinn.
  15622. 3.11
  15623. • System Variables for Filer Module − This little routine enables you to
  15624. use RISC-OS variables with the Filer_OpenDir and Filer_CloseDir
  15625. commands.  This means that you can do commands such as “Filer_OpenDir
  15626. <Obey$Dir>.DataFiles” and make programs totally independent of where
  15627. they are on the disc.  The module requires about 14k of free memory in
  15628. the RMA.  The program has been written in such a way that it should work
  15629. with all future versions of the Filer.
  15630. 3.11
  15631. REM >Filer
  15632. 3.11
  15633. *RMKill Filer
  15634. 3.11
  15635. *RMReInit Filer
  15636. 3.11
  15637. *RMFaster Filer
  15638. 3.11
  15639. SYS “XOS_Module”,18,“Filer%Base” TO ,,,CodeBase%
  15640. 3.11
  15641. TableBase%=CodeBase%+CodeBase%!¤18
  15642. 3.11
  15643. Info%=FN_LookupInfo(“Filer_OpenDir”)
  15644. 3.11
  15645. TableBase%!Info%=TableBase%!Info% OR &00000100
  15646. 3.11
  15647. Info%=FN_LookupInfo(“Filer_CloseDir”)
  15648. 3.11
  15649. TableBase%!Info%=TableBase%!Info% OR &00000100
  15650. 3.11
  15651. END
  15652. 3.11
  15653. :
  15654. 3.11
  15655. DEF FN_LookInfo(Text$)
  15656. 3.11
  15657. LOCAL Offset%,Command$
  15658. 3.11
  15659. Offset%=0
  15660. 3.11
  15661. REPEAT
  15662. 3.11
  15663. Command$=“”
  15664. 3.11
  15665. REPEAT
  15666. 3.11
  15667. Command$+=CHR$(TableBase%?Offset%)
  15668. 3.11
  15669. Offset%+=1
  15670. 3.11
  15671. UNTIL TableBase%?Offset%=0
  15672. 3.11
  15673. Offset%=(Offset%+16+3) AND NOT 3
  15674. 3.11
  15675. UNTIL Command$=Text$ OR TableBase%? Offset%=0
  15676. 3.11
  15677. IF Command$=Text$ THEN =Offset-12 ERROR 0, “I can’t find ”+Text$
  15678. 3.11
  15679. There is one slight problem with this routine due to the way that RISC-
  15680. OS implements the *RMFaster command by re-initialising the module.  This
  15681. means that the Filer icon disappears from the Desktop and cannot be
  15682. recovered without restarting the desktop so the routine is probably best
  15683. placed in a boot routine that subsequently starts up the desktop.  Simon
  15684. Callan.
  15685. 3.11
  15686. • TWIN 8000 − If you load TWIN at an address other than hex 8000 the
  15687. <f10> key functions (goto, newtime, etc) do not work.  It caused me no
  15688. end of problems and phone calls to Acorn before I realised this.
  15689. 3.11
  15690.  
  15691. • Greek3 outline font problem − I was very interested to read, in
  15692. Archive 3.11, about solving the problem of the slowness of the Computer
  15693. Concepts Greek3 font.  The root of the problem was that the internal and
  15694. external names should be the same, and the article suggests that you can
  15695. simply rename the !Fonts.Greek3 directory to !Fonts.Greek, which is very
  15696. quick and easy.  However, if you do this then any existing !Draw files,
  15697. etc containing the Greek3 font will not display with ordinary system
  15698. font characters.  It seems desirable to retain the external name Greek3.
  15699. 3.12
  15700. I think that the best course of action is to change the internal name
  15701. from Greek to Greek3, using the Acorn !FontEd application.  The article
  15702. mentions this without saying HOW to do it; it was all GREEK to me!  So
  15703. after I found out the hard way, here is an idiots guide...
  15704. 3.12
  15705. Install !FontEd on the iconbar, open up the !Fonts.Greek3 directory, and
  15706. you will see the IntMetrics and Outlines files.  Drag the Outlines file
  15707. onto the !FontEd icon on the iconbar.  A window will then open showing
  15708. all the Greek characters.  After a pause, you will hear a beep to show
  15709. that the operation is complete.  Now click <menu> over this window and
  15710. use the Alter->Font name option to change it from Greek to Greek3.  Now
  15711. choose the Save->Outlines and Save->Metrics options in turn; just click
  15712. on the OK boxes, as the file and path names are fine as they are.  Be
  15713. very careful not to change anything else!  Richard Stery (Wakefield BBC
  15714. Micro User Group)
  15715. 3.12
  15716. Make sure you take a backup before you try this as you risk losing the
  15717. font if you get it wrong.  Don’t say we didn’t warn you!  Ed.
  15718. 3.12
  15719. • Recovering deleted files − If you accidentally delete a file you can
  15720. still recover it so long as you take the following steps:
  15721. 3.12
  15722. (i) Do NOT write any data on the disk.
  15723. 3.12
  15724. (ii) Use the !DiscEdit program on Careware 2 and look for your file on
  15725. the disc and note the address (in hex) of the start and end of the file.
  15726. 3.12
  15727. (iii) Now you can use these addresses with the file recoverer program on
  15728. Shareware 9 to extract the file from the disc.  Dirk Schafer.
  15729. 3.12
  15730. • RenderBender on SCSI − In the hint last month, Neil Berry was
  15731. obviously using an early version of Oak’s SCSI interface software in
  15732. which the filing system was referred to as SCSIFS, so all references to
  15733. “SCSIFS::” should be replaced by “SCSI::”.
  15734. 3.12
  15735. • SWI“OS_PrettyPrint” works in VDU 5 mode (print text at graphics
  15736. cursor) as well as VDU 4 mode (print text at text cursor).  It formats
  15737. the text according to the current graphics clipping window (set by VDU
  15738. 24).  For more details on OS_PrettyPrint see Archive 1.7 p9.  Paul
  15739. Witheridge.
  15740. 3.12
  15741. • System variables for the Filer Module (revisited) − Here is a simpler
  15742. solution to the problem of not being able to use system variables with
  15743. the *Filer_OpenDir and *Filer_CloseDir commands than was suggested in
  15744. Archive 3.11 p7.
  15745. 3.12
  15746.    *SetMacro Alias$Filer_OpenDir Set Alias%Foo %Filer_OpenDir
  15747. %0|Mfoo|MUnset Alias%foo|M
  15748. 3.12
  15749. *SetMacro Alias$Filer_CloseDir Set
  15750. Alias$foo%Filer_CloseDir%0|Mfoo|Munset Alias%foo|M
  15751. 3.12
  15752. Once these two lines have been typed, *Filer_OpenDir and *Filer_CloseDir
  15753. can then be used with system variables.  Michael Ben-Gershon.
  15754. 3.12
  15755. • !Edit functions keys − Two more undocumented function key actions for
  15756. EDIT (in addition to <shift><f1> as described in Archive 3.4 p5).  These
  15757. are: <Ctrl><f2> which is equivalent to clicking on the window close icon
  15758. and <ctrl><f7> which toggles between the current caret position and the
  15759. beginning of a marked block.  Paul Witheridge.
  15760. 3.12
  15761.  
  15762. • 160k ADFS discs for the Archimedes?  If you have upgraded to the
  15763. Archimedes from a Master, or even a Beeb with ADFS, you might have some
  15764. 5.25“ discs you want to transfer.  According to the manuals, the
  15765. Archimedes will only read and write to 640k (L) format, Arthur 800k (D)
  15766. format, or the RISC-OS 800k (E) format using either 3.5” or 5.25“ discs
  15767. (80T).  However, the Master could read and write 40T 160k (S) format,
  15768. 80T 320k (M) format, or 80T 640k (L) format discs.  I discovered by
  15769. accident that the Archimedes will quite happily read 5.25” 160k (S)
  15770. discs in 40T mode, and in fact save them − I have not been able to try
  15771. out 320k discs since I do not have any.  You cannot, however, format
  15772. discs at either 160k or 320k on the Archimedes but then why would you
  15773. want to anyway? Chris Hughes (Wakefield BBC Micro User Group).
  15774. 4.01
  15775. • Apocalypse Tips − Progressing from planet to planet is really simple. 
  15776. At the start of the game, a map of your selected planet is displayed. 
  15777. All the objects on the planet’s surface are represented by coloured
  15778. dots, about 80% of which must be destroyed for your craft to be
  15779. withdrawn and for you to be allocated another planet.
  15780. 4.01
  15781. As you progress through the game and return to the ‘Guild of Spacings’
  15782. you will be given various add-ons for your ship.  These include a super-
  15783. cooler for your laser-canon and better shielding.  It is vital that you
  15784. have these if you intend to progress at a reasonable pace, so it is
  15785. advisable to get them as soon as possible.  Remember, you can only
  15786. return a maximum of five times before being rejected by the Guild.  When
  15787. you have destroyed your 80% or so, you will automatically be withdrawn
  15788. by the Guild − this may take some time so don’t give up too quickly!
  15789. 4.01
  15790. If you prefer rather more action and less running away, the following
  15791. lines of the BASIC file ‘!Apocalyps.Apocalypse’ can be changed.
  15792. 4.01
  15793. Line 290 is your starting score.
  15794. 4.01
  15795. Replace line 330 with:  330 !shieldcharge=16 :
  15796. !rapidturnF=1:!guntempcooler=0
  15797. 4.01
  15798. Now delete lines 340 to 380 inclusive for all the extra features and
  15799. (very) strong shields.
  15800. 4.01
  15801. Replace line 770 with: UNTIL 0 for infinite lives.  At line 1970
  15802. !impcounter is the number of objects you have shot, which determines how
  15803. many you have to go before advancing to the next planet.  For instant
  15804. withdrawal, replace 1970 with: 1970 !impcounter=10000.
  15805. 4.01
  15806. Line 6910 is how many times you can return to the guild before rejection
  15807. (this is normally 5).
  15808. 4.01
  15809. • HFORM v1.72 bug or feature?  If you try to format an ST506 hard disc
  15810. that has had a different profile (e.g. it was used on  a PC beforehand)
  15811. with the Acorn HFORM program supplied on the RISC-OS Supplement Disc,
  15812. the new disc shape option will not be acknowledged and so the full
  15813. capacity of the drive may not be realised.  This can be overcome by
  15814. removing the line that reads:
  15815. 4.01
  15816.    2130 IF cyl%=0 IF head%=0 IF Formatted% GOTO 2180
  15817. 4.01
  15818. Brian Oliver.
  15819. 4.01
  15820. • Hostages cheat mode − If you hold down the <R>, <U>, <T> and <H> keys
  15821. once the title screen has loaded and press <return>, you will enter into
  15822. the cheat mode.  This allows you to jump to either section two or three
  15823. of the game with three hostages and seven terrorists.
  15824. 4.01
  15825. • RAM discs for the PC Emulator − It is possible to create a hard disc
  15826. partition in any filing system.  For example, by altering the !PC.!Run2
  15827. file so that the path for Drive D is ‘RAM:$.RamDisc’ and using the FDISK
  15828. program to create a RAMFS hard disc partition, you can obtain any size
  15829. RAM disc you require _ memory and pages sizes permitting.  Michael Ben-
  15830. Gershon.
  15831. 4.01
  15832. • Reading a system variable from BASIC − The question was, “I’ve got a
  15833. system variable being set in the !Run obey file:
  15834. 4.01
  15835.    Set MaxNumberOfFonts 32
  15836. 4.01
  15837. and I want to be able to read this value into a BASIC variable but when
  15838. I use:
  15839. 4.01
  15840.    value% = VAL (“<MaxNumberOfFonts>”)
  15841. 4.01
  15842. it produces the error ‘Variable not found’, because it takes the ‘<’
  15843. character as meaning ‘less than’ rather than ‘start of system variable’. 
  15844. Using the BASIC keyword EVAL has the same effect.
  15845. 4.01
  15846. The first thing we need to do is to extract the value of the system
  15847. variable into a string that we can manipulate.  After searching through
  15848. the PRM volume II, I eventually found OS_ReadVarVal (SWI&23) on page
  15849. 750.  On entry, R0 points to the name of the system variable to be read,
  15850. R1 points to a suitable buffer to store the string in, R2 is the maximum
  15851. length of this buffer, R3 is set to 0 to use the first occurance of the
  15852. named system variable, and R4 is set to 3 so that an expanded string is
  15853. returned in the buffer.
  15854. 4.01
  15855. On exit, we should now have the value of the system variable in the form
  15856. of a string.  The next task is to convert this string into an integer,
  15857. and this is easily performed by using OS_ReadUnsigned (SWI &21) on page
  15858. 585.  On entry, R0 is set to 0 so that the base number used is assumed
  15859. to be 10 unless the string indicates otherwise, R1 is the pointer to the
  15860. string (note that this is the same as R1 for OS_ReadVarVal, which is
  15861. preserved on exit).  On exit R2 contains the value of the system
  15862. variable as an integer, using only two SWI calls.
  15863. 4.01
  15864. This is easily implemented in both BASIC and ARM assembler.
  15865. 4.01
  15866. In BASIC this can be achieved with 4 instructions:
  15867. 4.01
  15868.    MaxBufferLength = 16
  15869. 4.01
  15870.    DIM BufferPtr MaxBufferLength
  15871. 4.01
  15872.    SYS “OS_ReadVarVal”, “MaxNumberOfFonts”, BufferPtr,
  15873. MaxBufferLength,0,3
  15874. 4.01
  15875.    SYS “OS_ReadUnsigned”,0,BufferPtr TO ,,value%
  15876. 4.01
  15877. and if you want to do in Arm assembler, then only eight instructions are
  15878. necessary:
  15879. 4.01
  15880.    ...
  15881. 4.01
  15882.    ADR R0, SystemVariablePtr ; point to system variable
  15883. 4.01
  15884.    ADR R1, BufferPtr; point to buffer
  15885. 4.01
  15886.    MOV R2, #MaxBufferLength ; length of buffer
  15887. 4.01
  15888.    MOV R3, #0 ; use first one found
  15889. 4.01
  15890.    MOV R4, #3 ; expand fully
  15891. 4.01
  15892.    SWI XOS_ReadVarVal ; R1 preserved
  15893. 4.01
  15894.    MOV R0, #0 ; use default base
  15895. 4.01
  15896.    SWI XOS_ReadUnsigned ; R2 = value%
  15897. 4.01
  15898.    SystemVariablePTr = “MaxNumberOfFonts”, 0 ; note no ‘<’ or ‘>’ are
  15899. used
  15900. 4.01
  15901.    ALIGN
  15902. 4.01
  15903.    MaxBufferLength * 16
  15904. 4.01
  15905.    BufferPtr % MaxBufferLength ; reserve MaxBufferLength
  15906. 4.01
  15907.    ALIGN ; bytes of workspace
  15908. 4.01
  15909. To give a quick example of its use.  ‘SetMaxNumberOfFonts 16’ gives
  15910. value% = 16.  ‘SetMaxNumberOfFonts &20 gives value% = 32.
  15911. 4.01
  15912. This may be of use to programmers, as it allows constants to be set up
  15913. in the !Run obey file and users can modify them to fit their require
  15914. ments, without having to modify the program itself.  John ‘Lofty’
  15915. Wallace.
  15916. 4.01
  15917. • System Variables for the Filer Module (Archive 3.11 p7) − The problem
  15918. with the Filer module not allowing you to include system variables can
  15919. be solved a lot easier (and without taking up any valuable RMA space).
  15920. 4.01
  15921. I like to use icons for the directories which contain the third party
  15922. applications, demos, utilities, etc.  This meant using an application
  15923. directory and I wanted a general purpose !Run obey file to open the
  15924. directory viewer (using Filer_OpenDir).  However, I came across the same
  15925. problem as Simon Callan.  The solution I present here was passed on to
  15926. me by Paul Fellows (who wrote ‘Archimedes Basic Compiler’ amongst other
  15927. things) and so I don’t wish to take the credit for such a neat idea.
  15928. 4.01
  15929. So that I don’t have the !Run, !Sprites, etc with the actual programs I
  15930. want to view, I create a directory ‘_’ inside that application directory
  15931. to hold them.  Thus my !Run obey file reads as follows:
  15932. 4.01
  15933.    |!Run obey file
  15934. 4.01
  15935.    |
  15936. 4.01
  15937.    IconSprites <Obey$Dir>.!Sprites
  15938. 4.01
  15939.    Set Alias$OpenDir Filer_OpenDir <Obey$Dir>._
  15940. 4.01
  15941.    OpenDir
  15942. 4.01
  15943. Setting a command string as an ‘Alias’ will expand any system variables
  15944. within that command string.  This gets around the problem which Simon
  15945. describes, and also means that you don’t need to run a program every
  15946. time you switch the machine on.  John ‘Lofty’ Wallace.
  15947. 4.01
  15948.  
  15949. • 160k ADFS Discs (continued from Archive 4.1 p9) − It is certainly true
  15950. that the Archimedes can be made to read and write 160k or 320k ADFS
  15951. discs correctly.  I think, however, that the Archimedes ‘sees’ these as
  15952. 640k L format discs and if a read or write operation directs it to a
  15953. track beyond 39 (160k) it will try to push the disc head off the edge of
  15954. the disc searching for tracks that aren’t there.  Fine if you know what
  15955. you’re doing.  Lorcan Mongey.
  15956. 4.02
  15957. • Am I in the desktop?  You can use the Wimp_ReadSysInfo SWI command to
  15958. see if your program is running in the desktop or not.  The command
  15959. returns the number of active tasks, which will be zero if the program is
  15960. running outside of the desktop environment.  The example program below
  15961. will sense whether it has been run from the desktop environment and if
  15962. not, it will start up the desktop before running another application (in
  15963. this case !Edit).
  15964. 4.02
  15965.    program segment missing
  15966. 4.02
  15967. Adrian Look.
  15968. 4.02
  15969. • Apocalypse hints & tips − If you shoot the green T-shaped buildings
  15970. with a triangular roof using a mega photon your shield will be replen
  15971. ished.  If you shoot a purple and green mushroom, your shield will go
  15972. into override but your points are decreased for anything you hit with
  15973. the photons you are allocated.  If you shoot a rectangular brown
  15974. building they leave a shallow pyramid and if you shoot this, a Rakon
  15975. Gomjabba will appear and you will get a few more points for destroying
  15976. this.  If you shoot a Snail Rider with a mega photon, your energy banks
  15977. are recharged.  If you shoot a green mushroom, your score will decrease
  15978. for everything you hit with the mega photons allocated.
  15979. 4.02
  15980. If you type in and run the following program with disc two in drive 0
  15981. you will then be able to access all of Apocalypse’s nine worlds.
  15982. 4.02
  15983.    program segment missing
  15984. 4.02
  15985. Paul Bedford.
  15986. 4.02
  15987. • Bug in the Debugger Module − Some of you may be aware of a problem
  15988. with the Debugger module failing to disassemble certain instructions
  15989. correctly if they contain an immediate constant.  An immediate constant
  15990. is stored as an eight-bit value with a 4-bit shift applied, and the
  15991. debugger normally expands this format to its correct value, but
  15992. occasionally fails, e.g.
  15993. 4.02
  15994.    E28F0C01 ADD R0,PC, #&0100 correctly expanded
  15995. 4.02
  15996.    E28F0D01 ADD R0,PC, #&01,26 failed to expand (should be #&40)
  15997. 4.02
  15998. I have disassembled the debugger module and found the offending piece of
  15999. code.  It doesn’t seem to be a bug, rather a deliberate move to expand
  16000. constants differently under certain circumstances but for no obvious
  16001. reason.  Anyway, the fix is to change the word at offset &920 in the
  16002. module from &1A000028 to &FA000028, effectively changing a BNE to a BNV. 
  16003. This seems to solve the problem, although I haven’t tested this fix
  16004. exhaustively, so proceed with caution.  Lorcan Mongey.
  16005. 4.02
  16006. • BUILDing !Run files − If you write a !Run file using *BUILD and want
  16007. to include a line such as:
  16008. 4.02
  16009.    Run <Obey$Dir> .!RunImage
  16010. 4.02
  16011. then, instead, you should type:
  16012. 4.02
  16013.    Run |<Obey$Dir>.!RunImage
  16014. 4.02
  16015. to prevent RISC-OS from inserting the value of Obey$Dir into the file. 
  16016. It may be obvious but until now I have been using !Edit to write a two
  16017. line Obey file!  Elliott Hughes.
  16018. 4.02
  16019. • Copy Options − “Confirm” and “Verbose” − I think this is probably one
  16020. of those hints which would be classed as “obvious” by those who know it: 
  16021. The Archimedes User Guide and the PRM both describe, at some length, the
  16022. use of the system variable Copy$Options which sets default options for
  16023. the *Copy command.  However, neither make if clear that the desktop
  16024. filer has its own “Confirm” and “Verbose” options which are quite
  16025. independent of those which are stored in the system variable.  Thus no
  16026. amount of modification of Copy$Options in boot files or elsewhere will
  16027. affect the way the desktop behaves.
  16028. 4.02
  16029. The filer options can be read and changed by clicking the menu button
  16030. over any directory window and choosing the Options option.  The options
  16031. selected by this route differ in one significant way from the
  16032. Copy$Options in that they are stored in battery-backed RAM and thus are
  16033. preserved when the machine is switched off or reset.  They are stored in
  16034. byte 198 of the CMOS RAM (not byte 195 as my copy of the PRM says) along
  16035. with various other desktop options:
  16036. 4.02
  16037.    program segment missing
  16038. 4.02
  16039. Having these options stored in CMOS RAM can sometimes be an advantage
  16040. but on the whole I find it rather inconvenient.  For instance, I often
  16041. change temporarily from an icon display to “Full Info” and would like
  16042. icons to be restored after a reset.  Luckily this sort of preference can
  16043. easily be dealt with by a few lines in the boot routine.  For instance,
  16044. the following lines of BASIC will reset the Display mode to small icons
  16045. while preserving the other options:
  16046. 4.02
  16047.    program segment missing
  16048. 4.02
  16049. Hugh Eagle.
  16050. 4.02
  16051. • Cut and paste clip board − Many RISC-OS applications have a ‘cut and
  16052. paste’ option.  If these applications can also edit more than one
  16053. document at a time then you can use the ‘cut and paste’ option as a clip
  16054. board to transfer data from one document to another.  For example, you
  16055. can select a block of text in one !Edit document, move to another
  16056. document and then use the <ctrl><c> option to copy the block into that
  16057. document.  This method will also work with applications such as
  16058. PipeDream but not Ovation or Impression, etc as they use the ‘clip
  16059. board’ method.  Steve Drain.
  16060. 4.02
  16061. • Deskjet Plus Ink Cartridges, Recharging − You may have discovered the
  16062. same problem as me when trying to recharge these cartridges, namely that
  16063. the ink won’t go in the hole!
  16064. 4.02
  16065. A bit of reverse engineering, with the aid of a hacksaw, has revealed
  16066. the cause.  The container is filled with a dense spongy material which
  16067. holds the ink, but this does not enter the cavity formed by the raised
  16068. green portion with the central vent hole.  If a syringe needle is
  16069. entered through this hole it must be long enough to reach into the
  16070. sponge.  At least 20mm is required.  If this is not the case then the
  16071. inserted ink charge is held on top of the sponge by surface tension, and
  16072. quickly overflows through the charge hole.
  16073. 4.02
  16074. The only syringes which I can get hold of are intended for diabetics and
  16075. have a needle which is too short to reach the sponge through the top
  16076. hole.  The solution is to fill the sponge through the top hole.  The
  16077. solution is to fill through a second hole, drilled as small as possible,
  16078. on the 3mm wide land to the side of the raised portion.  In this
  16079. location there is a small internal cavity not filled with sponge.  This
  16080. prevents capillary leakage after recharging.
  16081. 4.02
  16082. Archive readers may be interested in the following program which will
  16083. draw a sketch showing the location of the hole.  It should be made as
  16084. close to the vertical wall of the raised portion as is possible.
  16085. 4.02
  16086.    program segment missing
  16087. 4.02
  16088. With regard to inks I have excellent results with Rotring Art Pen Ink
  16089. which comes in many colours.  Bill Graham.
  16090. 4.02
  16091. • MEMC DMA control register − With reference to Sean Kelly’s tip in June
  16092. ‘90 for gaining extra speed from the Archimedes by disabling the VIDC’s
  16093. DMA access.  Although the technique normally works without any trouble,
  16094. occasionally the machine crashes or has its memory contents corrupted. 
  16095. As Sean correctly stated, bit 10 of the MEMC register controls VIDC DMA,
  16096. however, as the dynamic RAM (DRAM) in the machine is no longer being
  16097. read by the VIDC it is also no longer being refreshed properly.  Bits 8
  16098. & 9 of the MEMC come to the rescue, they are the DRAM refresh control
  16099. bits.
  16100. 4.02
  16101. There are three available modes of refresh:-
  16102. 4.02
  16103.             bit 8   bit 9
  16104. 4.02
  16105. a) no refresh         1   0
  16106. 4.02
  16107.     (not used by the Archimedes)
  16108. 4.02
  16109. b) refresh during video flyback      0   1
  16110. 4.02
  16111. c) continuous refresh         1   1
  16112. 4.02
  16113. Flyback time during standard modes (0-16 & 24) is greater than the DRAM
  16114. holding time and as such requires refresh during flyback.  In multi-sync
  16115. modes the flyback time is much faster and the memory does not need to be
  16116. refreshed by the MEMC.
  16117. 4.02
  16118. The codes for the various modes are:-SYS“OS_UpdateMEMC‘,768,1792 to turn
  16119. off the VIDC DMA and invoke continuous refresh and
  16120. SYS“OS_UpdateMEMC‘,1536,1792 to return to normal for standard modes.
  16121. 4.02
  16122. It should be pointed out that the continuous refresh mode uses the DMA
  16123. video pointer as the refresh address source, incrementing the pointer
  16124. after use.  As such this should be used with care if the pointer is used
  16125. as an active part of your program whilst the screen is blanked.  (But
  16126. why would you want to move the pointer if you can’t see it??)
  16127. 4.02
  16128. There is also a sound DMA control bit in the MEMC but as this does not
  16129. affect memory refresh bits 8 and 9 which do not need to be altered.
  16130. 4.02
  16131. Bit 11 − 0 Sound DMA disable
  16132. 4.02
  16133.               1 Sound DMA enable
  16134. 4.02
  16135. Rob Swain.
  16136. 4.02
  16137. • Modifying the RISC-OS dot matrix printer driver − To add a new dot
  16138. matrix printer configuration to the RISC-OS printer driver you will need
  16139. to alter the ‘PrData’ file in the ‘!PrinterDM’ directory (on you
  16140. Applications Disc One or RISC-OS Extras Disc = Shareware 17):
  16141. 4.02
  16142. 1)  Make sure you have made a back up copy
  16143. 4.02
  16144. 2)  Run the !Edit program on Applications Disc One
  16145. 4.02
  16146. 3)  Double click on the copy of !PrinterDM that you wish to alter,
  16147. whilst holding the <shift> key down − a filer window will then open with
  16148. the contents of the !PrinterDM application inside
  16149. 4.02
  16150. 4)  Double click on the ‘PrData’ file in the !PrinterDM filer window − a
  16151. text window will then open
  16152. 4.02
  16153. 5)  Use the arrow keys to position the caret (red vertical text cursor)
  16154. just before the ‘Configured options’ heading and after the row of full
  16155. stops
  16156. 4.02
  16157. 6)  Add the following text changing the information to match your
  16158. printer (the example below adds a Shinwa CP80/Lucas LX80 option to the
  16159. RISC-OS printer driver):
  16160. 4.02
  16161.    program segment missing
  16162. 4.02
  16163. Alan Dawes
  16164. 4.02
  16165. • Nevryon hints & tips − Nevryon passwords for level three, five and
  16166. seven are given at the foot of this column, the letters being reversed
  16167. for the benefit of those who prefer to ignore them.
  16168. 4.02
  16169. The following Nevryon cheat allows the ship to be upgraded to have any
  16170. weapons desired and energy/credits/lives may also be altered.
  16171. 4.02
  16172. Load the ‘!Nevryon.Multi’ file on the Nevryon disc 1 and insert the
  16173. following at line 211.
  16174. 4.02
  16175.    211 Dump=PAGE-&3F800:Dump?n=value
  16176. 4.02
  16177. where n is:
  16178. 4.02
  16179. n=27:   Ship speed, 4 recommended
  16180. 4.02
  16181. n=28:   Shield orb (top), 1=ON 0=Off
  16182. 4.02
  16183. n=29:   Shield orb (bottom), 1=ON 0=OFF
  16184. 4.02
  16185. n=30:   RAM, 1=ON, 0=OFF
  16186. 4.02
  16187. n=32:   Gun droids, 0-2
  16188. 4.02
  16189. n=33   Lasers, 0-2
  16190. 4.02
  16191. n=35:   Number of credits (default 3)
  16192. 4.02
  16193. n=36:   Number of lives (default 4)
  16194. 4.02
  16195. n=37:   Starting secondary weapons status, 0=Off, 1=flamer, etc
  16196. 4.02
  16197. n=38:   Gold bar status, 0=OFF, 1=flamer, 2=mines, etc
  16198. 4.02
  16199. n=43:   Amount of energy (default 12)
  16200. 4.02
  16201. Change as many of these values as you want and save altered program and
  16202. repeat the process for the $.Multi file on the Nevryon 2 disc.  Jeremy
  16203. Mears.
  16204. 4.02
  16205.    upside down words missing!
  16206. 4.02
  16207. • Printing a full path name − This is a reply to the cry of help in
  16208. February 1990 from Richard Skemp about how to get the printer driver to
  16209. include the full pathname.  If you add the following line to the Library
  16210. program in the !PrinterDM directory, the printer driver will print the
  16211. full file pathname of any text file you print.
  16212. 4.02
  16213.    3281 BPUT#outfile%, CHR$13+CHR$10 +“Printing file ”+filenam$
  16214. +CHR$13+CHR10+CHR$10
  16215. 4.02
  16216. Lorcan Mongey.
  16217. 4.02
  16218. • Reinstating the filer module − An item on system variables mentions
  16219. that if you *RMFaster the filer module from the desktop, you lose the
  16220. filer icons and can’t get them back (Archive 3.11 p7).  To retrieve
  16221. them, try:
  16222. 4.02
  16223.    <F12>
  16224. 4.02
  16225.    Desktop
  16226. 4.02
  16227.    <Return>
  16228. 4.02
  16229. this doesn’t interfere with anything already in the desktop but re-
  16230. starts any of the default tasks that have been lost, namely Filer,
  16231. PaletteUtil an TaskManager.  Note, however, that if you *RMKill or
  16232. *RMFaster the Task Manager, you can’t get a *prompt by pressing F12!  To
  16233. get around this, make up an Obey file containing the command
  16234. 4.02
  16235.    *Desktop
  16236. 4.02
  16237. and this will do the trick.  It’s quite interesting to see the Task and
  16238. Palette icons in the “wrong” place on the icon bar!  However, I feel
  16239. that you should not deliberately interfere with desktop modules and this
  16240. method should really be regarded as a ‘get-you-home’ technique in case
  16241. of problems.  Lorcan Mongey.
  16242. 4.02
  16243. •REMming your programs − When writing a program, in any language, it is
  16244. good practice to put plenty of comments in to remind oneself what each
  16245. particular section of code does.  However, in BASIC, there are two
  16246. things which tend to deter one from following this practice.  The first
  16247. is that the interpreter has to recognise a REM statement before it knows
  16248. to ignore it.  This takes time, which may be undesirable in procedures
  16249. and loops.  The second deterrent is the amount of space taken by the
  16250. text of the comment, which is stored verbatim in the program.
  16251. 4.02
  16252. I have a practice, when commenting procedures and functions, of placing
  16253. explanatory comments outside the procedure/function block.  For
  16254. instance:
  16255. 4.02
  16256.    program segment missing
  16257. 4.02
  16258. Clearly, the above practice prevents the REM statements from impacting
  16259. the performance of the procedure/function, as they are in section of the
  16260. code which the interpreter will never see.
  16261. 4.02
  16262. This last observation leads to an additional possibility for interpreted
  16263. code (but not for compiled BASIC).  Since the interpreter never sees
  16264. these lines between procedure/function blocks, the normal syntax rules
  16265. can be broken without an error being generated.  Thus, we can save some
  16266. space, as well as execution time, by omitting the REM key words.  Note
  16267. that this will only work if the comments are where the interpreter
  16268. cannot see them.  If you are in the habit of using GOTO statements
  16269. (sometimes a handy way of removing umpteen layers of IF... THEN... ELSE
  16270. statements if you are checking for exceptions and, despite common
  16271. ‘wisdom’, still used frequently by professional programmers), this
  16272. placing of syntactically incorrect code beyond the bounds of a procedure
  16273. block might allow the trapping of such errors as omitting the ENDPROC or
  16274. = statements.  David Hazel.
  16275. 4.02
  16276. • Star LC10 − An undocumented feature on a Star LC10 Colour Printer, is
  16277. that if you open out a file to the printer and try and print characters
  16278. 27 and 102 to it, it prints out the current dip switch setting:
  16279. 4.02
  16280.    program segment missing
  16281. 4.02
  16282. Jason Ede.
  16283. 4.02
  16284. • System Variables (continued from 4.1 p9 & 4.1 p10) − I had had similar
  16285. problems and came up with a different solution which can solve both
  16286. problems, i.e. reading system variables to BASIC and passing system
  16287. variables to the Filer module.  I use a call to OS_EvaluateExpression,
  16288. which can return a numeric or string value, as follows:
  16289. 4.02
  16290.    program segment missing
  16291. 4.02
  16292. This is an artificial example; in practice you would know whether you
  16293. were expecting a numeric value or a string, such as Obey$Dir.  Lorcan
  16294. Mongey.
  16295. 4.02
  16296.  
  16297. • Basic Text File Type − Acorn have specified field type &FD1 for BASIC
  16298. ASCII text.  This is very useful for BASIC programs which are kept in
  16299. !Edit format as it allows the user to define a RunType for them.  For
  16300. example, the following command will cause a BASIC text file to be run
  16301. just like a normal BASIC file:
  16302. 4.03
  16303.    *Set Alias$@RunType_FD1 Basic-quit |“%0|” %*1
  16304. 4.03
  16305. Jim Markland, Cirencester.
  16306. 4.03
  16307. • Converting old Arthur programs to RISC OS − Before the days of RISC-
  16308. OS, programs running under the old Arthur used a form of reconfigure
  16309. system to adjust the CMOS RAM settings.  Now that RISC-OS is available,
  16310. those programs are out of date, and are a pain, as in most cases they
  16311. don’t “Boot-Up” from the desktop.
  16312. 4.03
  16313. RISC-OS uses a different form of reconfiguring.  Two in fact − one is
  16314. the WimpSlot command, which tells the computer the minimum and maximum
  16315. amount of memory the program is going to need and the other uses the
  16316. module MemAlloc, found in the !Lander directory on Application disc 2.
  16317. 4.03
  16318. These two things are quite easy to use.  The only problem is how to find
  16319. out how much room the program is going to use.  This can be discovered
  16320. fairly easily.
  16321. 4.03
  16322. Load up the !Boot file and examine it using the BASIC Editor.  What you
  16323. are looking for are a set of commands/variables, which tell the computer
  16324. the amount of SpriteSize/Screensize, etc it is going to need to run.  To
  16325. convert this, all you need is the MemAlloc module, and in a run file,
  16326. use MemAlloc to allocate the memory needed for the application.
  16327. 4.03
  16328. Here are some examples:
  16329. 4.03
  16330. Holed Out
  16331. 4.03
  16332. 1. Format a fresh new disc
  16333. 4.03
  16334. 2. Create a new directory called !HoledOut
  16335. 4.03
  16336. 3. Copy all the files on the original Holed Out disc, except the !Boot
  16337. file into the new directory.
  16338. 4.03
  16339. 4. Copy MemAlloc into the !HoledOut directory.
  16340. 4.03
  16341. 5. Use !Edit to create the following Obey file:
  16342. 4.03
  16343.    program segment missing
  16344. 4.03
  16345. 6. Load HoledOut 2 into the BASIC Editor and, where the program loads a
  16346. particular file, change it to
  16347. 4.03
  16348.    (LoadCommand) <HoledOut$Dir>. (File to be loaded)
  16349. 4.03
  16350. for example
  16351. 4.03
  16352.    70 *RMLOAD BELL
  16353. 4.03
  16354. change to
  16355. 4.03
  16356.    70 *RMLOAD <HoledOut$Dir>.Bell
  16357. 4.03
  16358. and
  16359. 4.03
  16360.    610 CHAIN “HOLEDOUT3”
  16361. 4.03
  16362. change to
  16363. 4.03
  16364.    610 CHAIN  “<HoledOut$Dir>.HOLEDOUT3”
  16365. 4.03
  16366. etc, etc.
  16367. 4.03
  16368. 7. Do the same as above to the file HOLEDOUT3, wherever the program
  16369. loads a particular file, put the command<HoledOut$Dir>. in front of the
  16370. filename.
  16371. 4.03
  16372. 8. Create a !Sprite file for the application icon and away you go!
  16373. 4.03
  16374. Then HoledOut should run as a RISC-OS application, and will also run off
  16375. a Hard Drive (N.B. I used Holed Out Extra Courses 1)
  16376. 4.03
  16377. Explanation of !Run File:
  16378. 4.03
  16379. Line 1:  Tells the computer to set a directory, and to enter it without
  16380. changing the root directory whenever the <HoledOut$Dir> command is used.
  16381. 4.03
  16382. Line 2:  Allocates the minimum and maximum amount of memory needed to
  16383. run the application.
  16384. 4.03
  16385. Line 3:  Tells the computer to look for the module MemAlloc in memory,
  16386. if it isn’t found then it tells the computer where to find it and loads
  16387. it.
  16388. 4.03
  16389. Lines 4-9:  Tell the computer the memory settings the program needs.
  16390. 4.03
  16391. Line 10:  Kills the module MemAlloc for more memory.
  16392. 4.03
  16393. Line 11:  Runs the actual program.
  16394. 4.03
  16395. Pacmania:
  16396. 4.03
  16397. In this case, things are a little different.  So do the following:
  16398. 4.03
  16399. 1.  Format a new disc.
  16400. 4.03
  16401. 2.  Create a new directory called !PacMania.
  16402. 4.03
  16403. 3.  Copy all the files except !Boot into the new directory.
  16404. 4.03
  16405. 4.  Use !Edit to create an Obey file containing the following...
  16406. 4.03
  16407.    Set PacMania$Dir <Obey$Dir>
  16408. 4.03
  16409.    Run <PacMania$Dir>.!RunLoad
  16410. 4.03
  16411. 5.  Use the BASIC Editor to create a file called !RunLoad...
  16412. 4.03
  16413.    10 *Load <PacMania$Dir>.PacMania 10000
  16414. 4.03
  16415.    20 CALL &100000
  16416. 4.03
  16417. 6.  Create an application !Sprite file.
  16418. 4.03
  16419. PacMania should then run as a RISC-OS application.
  16420. 4.03
  16421. So there we are, I’ve also used another command to help with the loading
  16422. process.  <Obey$Dir> and <(Application name)$Dir>.  These two commands
  16423. tell the computer where to find certain files, no matter where they are. 
  16424. (Hidden in directories on a hard drive for example.)  Duncan Burbidge.
  16425. 4.03
  16426. • Getting Taxan 795 to work with Archimedes.  The Taxan 795 is an
  16427. excellent multi-sync colour monitor, but it was a bit unnerving, on
  16428. unpacking and assembling my new A440 with VIDC Enhancer and 795 monitor,
  16429. to be confronted with a screen which just would not synchronize!  But,
  16430. with help from Paul and from Atomwide, and with a lot of exploration, I
  16431. think that I now know what screen modes it will support and how to get
  16432. them.
  16433. 4.03
  16434. Initially, the trick is to set *CONFIGURE MONITORTYPE 1 and *CONFIGURE
  16435. WIMPMODE20.  Then the machine wakes up in the desktop in mode 20 whether
  16436. or not the VIDC enhancer software (VIDCmodes for the 795) is installed,
  16437. provided that (if it is not installed) the VIDC switch is ‘off’. 
  16438. However, if VIDCmodes is not installed, loading an application which
  16439. changes the mode to one of the basic Archimedes modes (0-17) plunges you
  16440. back into an unsynchronized screen.  Therefore, my initial explorations
  16441. were done with an ordinary monchrome monitor connected to the sync BNC
  16442. socket, after changing two links on the circuit board − as explained on
  16443. page 434 of the RISC-OS user guide.  Options for all Acorn and Atomwide
  16444. modes (except the high-resolution mono mode 23) are listed in the
  16445. accompanying table.  (See opposite.)  Bill Mapleson.
  16446. 4.03
  16447. • Keywords in BASIC − I have found that PRINT ‘SHIFT F1’ showed a lower
  16448. case underline ‘a’.  From BASIC on pressing return to ‘PRINT’ the result
  16449. I found a number that looked just like TIME.  It was.  SHIFT F2 gives
  16450. HIMEM and SHIFT F3 = LOWMEM.  No other Fkey gives a number, but they all
  16451. act as quick entry keys for use in BASIC program writing within ARMB
  16452. edit.  They must be programmed with BASIC keyword token values.
  16453. 4.03
  16454. I expect this is widely known but here is the list for completeness.
  16455. 4.03
  16456.    program segment missing
  16457. 4.03
  16458. Simon Anthony, Nottingham.
  16459. 4.03
  16460. • Locating screen coordinates − When writing wimp programs (out of
  16461. desktop) it’s often hard to plot things because you’re not sure what the
  16462. coordinates of the screen are.  Using the program below, it is possible
  16463. to do this.
  16464. 4.03
  16465.    program segment missing
  16466. 4.03
  16467. I hope the program is of some use to wimp programmers.  Duncan Burbidge.
  16468. 4.03
  16469. • MSDOS installation on hard disc − Here is a summary of the steps for
  16470. getting an MSDOS partition installed onto a hard disc.
  16471. 4.03
  16472. 1. (This step applies only if you have an old PCEmulator, e.g. V1.20,
  16473. and a V1.33 upgrade disc)
  16474. 4.03
  16475. (a) Read ‘ReadMe2’ on the V1.33 disc.
  16476. 4.03
  16477. (b) Run ‘MakePC’ on the V1.33 disc.  (This copies the file !PC.Rom from
  16478. the 1.20 disc to the 1.33 disc.  Although the desktop displays this as a
  16479. ‘text’ file, I reckon that in fact it is the emulator itself and that
  16480. all the other files are concerned with preparing the Archimedes to run
  16481. the Emulator.)
  16482. 4.03
  16483. 2.  Read ‘ReadMe’ on V1.33 but don’t take too much notice of it − it
  16484. confused me a lot!
  16485. 4.03
  16486. 3.  Examine the files !PC.GenBoot.! Config and !PC.GenBoot.!Modules.  If
  16487. you have more than 1M of RAM, it may be worth changing some of the ‘Y’s
  16488. to ’N’s in !Config.  When I first tried it, without any changes, my
  16489. screen went blank because my Taxan 795 monitor requires the VIDC
  16490. Enhancer and the VIDCmodes software installed in order to synchronize
  16491. when not in modes 18-21.  With a 4M machines, I decided to make all the
  16492. response ‘N’ and everything seemed OK.
  16493. 4.03
  16494. 4.  If you have a SCSI hard disc (as I have), run !SCSIDisk.  This
  16495. renames !PC.SCSIRun2 to !PC.!Run2 and !PC.!Run2 to !PC.!ADSF[sic]Run2. 
  16496. That is, it makes !Run2 the file that defines where the MSDOS partition
  16497. is to be placed − on a SCSI hard disc not on an ADFS one.  !SCSIDisk
  16498. then creates a file ‘PC.Drive_C’ on the SCSI disc of the size you
  16499. request (1 to 32M).  This file can be *TYPEd from the Archimedes command
  16500. line − but don’t do it until everything is complete because its contents
  16501. misled me!  The screen then displays information for running two MSDOS
  16502. commands:  FDISK and HDINSTAL.  It also displays the injunction ‘Press
  16503. ESC’ to stop:  Press RETURN to continue‘.
  16504. 4.03
  16505. 5.  If you press <return>, the instructions are cleared from the screen;
  16506. the PC Emulator is loaded, and you are invited to put the MSDOS boot
  16507. disk into ‘DriveA’ (Drive0).  Doing so, and pressing <return>, loads
  16508. MSDOS which asks for date and time − but pressing <return> in response
  16509. to each request supplies the information from the system clock.  When
  16510. the ‘A>’ prompt appears, you need to carry out the instructions that
  16511. were recently wiped off the screen:  Type ‘FDISK’, then ‘1’ to create a
  16512. DOS partition, then ‘Y’ to assign all of file Drive_C to DOS: then
  16513. ‘HDINSTAL’ which formats the hard disc and transfers the MSDOS system
  16514. files from the floppy MSDOS boot disc to the hard disc.
  16515. 4.03
  16516. 6.  If you press ESC (at the ‘ESC to stop, <return> to continue’
  16517. injunction) and need to run !SCSIDisk again, beware that this will re-
  16518. rename the !Run2 files.  I avoided this by ‘Remming’ the *rename
  16519. statements in !SCSIDisk.!RunImage.  (This is a BASIC program from which
  16520. it would appear that the procedure for installing MSDOS on an ADFS hard
  16521. disc would be the same without the complication of renaming the !Run2
  16522. files.)
  16523. 4.03
  16524. 7.  Once MSDOS is safely on the hard disc, the !PC application can be
  16525. transferred from the V1.33 disk to the PC directory on the hard disk.
  16526. 4.03
  16527. 8.  One last complication fo me was that when I type ‘HDINSTAL’ I go the
  16528. quaint message ‘insert new diskette in drive C’ and, on pressing
  16529. <return>, ‘drive not read − format failure’.  Eventually, after many
  16530. hours and several phone calls, the explanation turned out to be that I
  16531. have two external 5.1/4“ drives and MSDOS was seeing the second of these
  16532. as Drive C and the SCSI hard disc as Drive D.  To avoid amending
  16533. HDINSTAL (which is a simple batch file) I told RISC-OS that it had only
  16534. two floppy drives (*CONFIGURE FLOPPIES 2, followed by <ctrl-break>) and
  16535. all went smoothly.  Subsequently I reconfigured to three floppies and
  16536. now MSDOS wakes up with a ‘D>’ prompt ready to run from the hard disc. 
  16537. The most useful tool for finding out what MSDOS thinks it has is to type
  16538. CHKDSKA:.CHKDSKB: etc,
  16539. 4.03
  16540. 9.  Finally, in RISC-OS, lock the ‘Drive_C’ file.  I’m astonished that
  16541. this is not done by the PCEmulator programs.  Without it, a careless
  16542. click in RISC-OS might destroy all your MSDOS files!  Bill Mapleson.
  16543. 4.03
  16544. • Saving your configuration settings − I recently needed to change the
  16545. batteries in my Archimedes but this meant that I would lose the
  16546. configuration settings stored in the CMOS RAM.  I managed to solve the
  16547. problem by writing two small programs that saved and then restored the
  16548. CMOS RAM settings to and from a file.
  16549. 4.03
  16550.    program segment missing
  16551. 4.03
  16552. Sham Gardner, Karlsruhe (Germany).
  16553. 4.03
  16554. (The other way of doing it is to open the computer, switch the computer
  16555. on, change the batteries, switch off and then put the computer back
  16556. together again − but I dare not suggest that you should do that because
  16557. someone might stick a screwdriver into the heavily protected p.s.u. and
  16558. I’d get blames − so I didn’t suggest it, OK? Ed.)
  16559. 4.03
  16560. • Wimpslotting warning.  Always give the maximum amount of memory your
  16561. program is going to use.  Otherwise, the computer will eat up all the
  16562. available memory and use it for the program and you can’t get the memory
  16563. back unless you quit the application!  This happens in FormEd (All
  16564. versions, I would assume).  The FormEd !Run file contains the line:
  16565. 4.03
  16566.    WimpSlot -min 288k
  16567. 4.03
  16568. Using !Edit, change this line to...
  16569. 4.03
  16570.    WimpSlot -min 288k -max 288k
  16571. 4.03
  16572. The program will then run, using up less memory, meaning that both
  16573. !FormEd and !Paint can run at the same time on a 1M machine.  You have
  16574. been warned.  Duncan Burbidge.
  16575. 4.03
  16576.  
  16577. • Cheats − Here are some cheats for various games.  (I suggest that if
  16578. you do any of these, you do not use the original disc, but rather work
  16579. on a copy.  Ed.)
  16580. 4.04
  16581. Cheat for Minerva’s BattleTank  If you run the following program you
  16582. will have however many lives you specified at line 20:
  16583. 4.04
  16584.    program segment missing
  16585. 4.04
  16586. Cheat for 4th Dimension’s Inertia - Type in the following and then each
  16587. time you lose a life, you won’t!
  16588. 4.04
  16589.    program segment missing
  16590. 4.04
  16591. Cheat for 4th Dimension’s Man-At-Arms − The passwords for the 3 stages
  16592. are: INCUBUS, STRANGE and PULSARS
  16593. 4.04
  16594.    progam segment missing
  16595. 4.04
  16596. When you run this program, it will allow you loads of lives, punches and
  16597. lots of energy.  Be careful not to set any of the variables at &FF
  16598. because it does tend to make the program crash!
  16599. 4.04
  16600. Cheat for Minerva’s RedShift − Once the game has loaded, type the
  16601. following:
  16602. 4.04
  16603.    PHASING GERALD
  16604. 4.04
  16605. Note:  When you pressed <11>, the screen will change to the Help screen. 
  16606. Take no notice of this and keep typing the rest of the words in. 
  16607. Remember that there is a space between the two words!
  16608. 4.04
  16609. If you have entered this correctly, you will hear a bleep.  Then just
  16610. press <1> or <2> to play the game and when your Energy is low just press
  16611. <E> and you’ll see the energy level is full again!  Also, when your
  16612. TurboEnergy is low press <T> and you will be back to full strength!
  16613. 4.04
  16614. Cheat for 4th Dimension’s E-Type − The following will give you as many
  16615. minutes as you like to get round each track:
  16616. 4.04
  16617.    program segment missing
  16618. 4.04
  16619. Type in the above and you’ll have all the time you want to round each
  16620. track!  Mark Faulkner.
  16621. 4.04
  16622. • DOS RAM Disc − In DOS, it is possible to set up a RAM disc and indeed,
  16623. for many applications, it is vital to do so if one does not have the
  16624. luxury of a hard disc.  Regular DOS supports a maximum of 640 kbytes of
  16625. RAM, although we did learn about Extended Memory in last month’s
  16626. Archive.  The problem with a DOS RAM disc is that the memory is actually
  16627. taken from the 640k system RAM.  At least it certainly is with current
  16628. versions of the PC Emulator.
  16629. 4.04
  16630. A few months ago, an application appeared on the magazine disc called
  16631. !PCRamDisc.  This made use of the fact that the PC emulator can support
  16632. up to two “hard disc” partitions and that one of these could be in the
  16633. Archimedes RAM disc filing system.  (In fact one of these can be on an
  16634. ADFS floppy!).  In this way, a large RAM disc can be used within DOS
  16635. which does not take anything from the regulation DOS 640k.  This seemed
  16636. a really good idea and I was eager to try it out.
  16637. 4.04
  16638. The program which produced the DOS partition is a variation of the Acorn
  16639. program to construct a hard disc partition but with the filing system
  16640. and paths changed and with the allowed partition sizes also changed to
  16641. more convenient values.  Having created such a partition, the !Run2 file
  16642. must be modified to tell the machine where the partitions are.
  16643. 4.04
  16644. Then, when the emulator is run, the new “drive” must be initialised
  16645. using FDISK and then formatted using FORMAT.  This part really annoyed
  16646. me as I had to do it each time I used the emulator, and I kept for
  16647. getting what to do.
  16648. 4.04
  16649. It seemed a good idea to create a ready-formatted and initialised
  16650. partition before entering the emulator.  I am sure someone could write a
  16651. program to do this, but not me.  Obviously, it would be silly to store,
  16652. say, a 2 megabyte partition in readiness; this is just a waste of space. 
  16653. However, I discovered that an initialised, formatted, but otherwise
  16654. empty DOS partition of one megabyte capacity could be compressed to just
  16655. over a kilobyte using Archimedes ARC, a Public Domain file compression/
  16656. decompression program written by David Pilling.
  16657. 4.04
  16658. On the magazine disc there is an application called !PCRamDisk (note the
  16659. different spelling).  This contains a compressed but empty DOS partition
  16660. which is decompressed into the RAMFS before invoking the PC emulator. 
  16661. Please read the !Help file before using it as the !Run2 file of the
  16662. emulator is overwritten when the application is run.  Brian Cowan.
  16663. 4.04
  16664.  
  16665. Hints and Tips
  16666. 4.5
  16667. •   ANSI C v3 on a SCSI Hard  Disc – After some trial an error, I finally
  16668. managed to install ANSI C v3 correctly on my new Oak SCSI card with 45Mb
  16669. hard disc drive.  Here’s what I had to do:
  16670. 4.5
  16671. First change line 3390 in the ‘InstallNet’ program which is on all three
  16672. of the ANSI C discs so that it reads:
  16673. 4.5
  16674. 3390 DATA “ADFS::0.$”,“NET:$”,“SCSI::SCSIDisc4.$”
  16675. 4.5
  16676. Then run the “InstallHD” program from each disc and always answer ‘Y’ on
  16677. the overwrite options (otherwise, the back up program would stop).
  16678. 4.5
  16679. If you use the included !Cstart obey file, you should not ‘*Set 
  16680. Run$Path’ in your !boot file and you should remember to modify the
  16681. !Cstart file to work with SCSI and not ADFS i.e. c$loc SCSI::4.$
  16682. 4.5
  16683. Atle Baardholt, Norway
  16684. 4.5
  16685. •   Deskjet Plus ink cartridges, recharging − Further to Bill Graham’s
  16686. note in Archive 4.2 p8, I’ve found that Quinx Permanent Black works well
  16687. and is probably cheaper than Art Pen Ink. You do need to be careful that
  16688. you don’t inject more ink than the sponge will absorb, otherwise the
  16689. mess is dreadful!  Stuart Bell, Brighton.
  16690. 4.5
  16691. •   DropShip passwords − Passwords for DropShip are Dahlia, Gaggle, Kaunda
  16692. and Nautch.
  16693. 4.5
  16694. •   ExAllPlus − This is a non-Wimp program which was written in an attempt
  16695. to catalogue my discs. It was designed for use with a single ADFS Floppy
  16696. drive and a SCSI Hard disc together with a Star LC10 printer using
  16697. continuous paper. Other printers may require some alteration to the
  16698. coding.
  16699. 4.5
  16700. Most existing “ExAll” and “CatAll” programs invoke the *EX and *CAT
  16701. calls (!) which produce a lot of unnecessary and confusing duplication
  16702. of libraries, directories etc. (I have memories of the reams of paper
  16703. produced by an  “ExAll” print-out of the original Archimedes Welcome
  16704. disc.) To avoid this, these calls have been re-written so that, in
  16705. addition to other changes, the directory headings have been reduced to
  16706. path descriptions.
  16707. 4.5
  16708. The program will produce both screen and printed listings of either the
  16709. full disc or the root directory. The various options are selected by a
  16710. series of key-strokes and a default screen “ExAll” routine has been set-
  16711. up which can be easily customised.
  16712. 4.5
  16713. Use can be made of the condensed print option to produce catalogue
  16714. listings eight entries wide as against the usual five. This rather
  16715. spoils the screen display in this mode but it was thought useful to
  16716. maintain a check on the output to the printer. When using this option to
  16717. produce “EX” listings the screen display is OK and the reverse feed
  16718. facility of the Star LC10 enables double column print-outs to be
  16719. obtained.
  16720. 4.5
  16721. The “GetType” program is loaded in by the main “ExAllPlus” code and
  16722. contains all the FileType codes I have been able to find but it can
  16723. easily be updated.
  16724. 4.5
  16725. (The listing is far too long to put in the magazine. I have put it on
  16726. the monthly program disc. Ed.)
  16727. 4.5
  16728. Doug Tuddenham
  16729. 4.5
  16730. •   First Word Plus embedded commands − If you switch off the Word
  16731. Processor mode of FWP you can enter printer commands directly into the
  16732. text.  Double bracket command codes e.g. ((n))n1 can be entered to
  16733. change the printer font and style. For example, with a Star LC24-200 in
  16734. the following effects can be achieved:
  16735. 4.5
  16736. Font   ((F))0   Times Roman
  16737. 4.5
  16738.       ((F))1   Sans Serif
  16739. 4.5
  16740.       ((F))2   Courier
  16741. 4.5
  16742.       ((F))3   Prestige
  16743. 4.5
  16744.       ((F))4   Script
  16745. 4.5
  16746.       ((F))5   Draft
  16747. 4.5
  16748. Size   ((S))0   Standard
  16749. 4.5
  16750.       ((S))1   Double Width
  16751. 4.5
  16752.       ((S))2   Double Height
  16753. 4.5
  16754.       ((S))3   Double Width and Height
  16755. 4.5
  16756. Colour   ((C))0   Black
  16757. 4.5
  16758.       ((C))1   Red
  16759. 4.5
  16760.       ((C))2   Blue
  16761. 4.5
  16762.       ((C))3   Violet
  16763. 4.5
  16764.       ((C))4   Yellow
  16765. 4.5
  16766.       ((C))5   Orange
  16767. 4.5
  16768.       ((C))6   Green
  16769. 4.5
  16770. Peter Thomas, Leics
  16771. 4.5
  16772. •   FWP Cut and Paste − It is possible to cut a marked block of text in a
  16773. First Word Plus document and then paste it into another document.  Both
  16774. documents must be loaded first.  This may be obvious but I have only
  16775. just found out – the hard way.  Dave Livsey, Devon
  16776. 4.5
  16777. •   Impression hints & tips − Now that I am using Impression for the
  16778. magazine, there are likely to be a number of hints & tips forthcoming.
  16779. Some of these may be obvious to the more experienced Impression users,
  16780. but bear with me because some of us are only just beginning and, in
  16781. fact, the experiences of someone just starting to use an application can
  16782. often be very helpful to others going through the same hoop. Also, when
  16783. you have been using an application for a while, you build up the feeling
  16784. that you know how it works and there may be facilities which you never
  16785. realised were available which new users pick up. Anyway, here are the
  16786. first few...
  16787. 4.5
  16788. Adding styles to titles − If you want to add a style to a title, be sure
  16789. to select the whole line including the carriage return. In other words
  16790. either put the cursor by the left hand margin and drag down to the next
  16791. line or triple-click somewhere on the line. (I’m sure you all know that
  16792. double-click selects a word, triple-click selects a line and quadruple-
  16793. click (or <ctrl-@>) selects a whole paragraph.) The reason for selecting
  16794. in this way is that if you only select by dragging across the line, you
  16795. omit the carriage return which remains in the base style. The problem
  16796. with this is that if, as in the title lines in Archive, the added style
  16797. says “reduce the space after the paragraph to zero”, the carriage return
  16798. still has the full space-after-paragraph so the paragraph spacing
  16799. remains unchanged.
  16800. 4.5
  16801. Entering point sizes − If you want to change the size of some text, you
  16802. mark it and press <shift-ctrl-S>. If the dialogue box is empty, you can
  16803. type in a number, say 18, and it will assume you mean 18 point. If you
  16804. decide that you want it a bit bigger and press <shift-ctrl-S> again, it
  16805. comes up with “18pt” in the box. If you then type in, say, 2 <return> it
  16806. will interpret the “18pt2” as (18+2)pt and will give you 20pt! (Well, it
  16807. works in version 2.05.) Unfortunately, if you press <-> to try to put,
  16808. say, -2, it seems to interpret it as an escape and closes the box.
  16809. 4.5
  16810. Marking, deleting and re-typing − (This is something that is obvious to
  16811. people coming to Impression via the Mac but may have been missed by
  16812. people brought up through RISC-OS.) If some text is marked, by any
  16813. means, and you want to replace it by some text you are about to type in,
  16814. there is no need to delete the marked text first. As soon as you start
  16815. to type, the marked text is deleted and transferred to the scrap-pad and
  16816. your typing appears in place of it. The deleted text can be used
  16817. elsewhere by pasting it in with <ctrl-V>.
  16818. 4.5
  16819. Quick searching − If you want to find something quickly, find/replace is
  16820. a good way to do it. Call it up with <ctrl-f4> and then, to delete the
  16821. text already in the dialogue box, press <ctrl-U>, then type in the word
  16822. you are looking for and press <return>. (This use of <ctrl-U> applies to
  16823. all dialogue boxes − useful when saving a document under a new name.)
  16824. Remember though that it searches from the cursor downwards, so add a
  16825. <ctrl-uparrow> before calling up the find/replace box. (In the version I
  16826. have, 2.05, the cursor is sometimes not re-displayed in its new position
  16827. after a find/replace has been executed. In other words, it appears to be
  16828. still where you left it but it may actually be further down the document
  16829. so it’s worth getting into the habit of using <ctrl-uparrow> anyway.)
  16830. Also, don’t get tripped up, as I just did. If you set the “case
  16831. sensitive” option, it stays set until you switch it off again. So, if
  16832. you can’t find a word that you know is in there somewhere, check that
  16833. you have not left it in the case-sensitive mode from the last time you
  16834. used it.
  16835. 4.5
  16836. Replacing double spaces − I was trying to do a selective search and
  16837. replace to remove double spaces and replace them with single spaces.
  16838. When I told it to find the next one, it sometimes didn’t appear to mark
  16839. anything. Most peculiar!  Eventually, I realised what was happening. The
  16840. text was fully justified and the double spaces (the same would apply to
  16841. finding single spaces) were between the last word on one line and the
  16842. first on the next line. Thus Impression was marking the infinitesimally
  16843. small space at the end of the line, i.e. was marking nothing at all.
  16844. There’s nothing you can do about it (apart from removing the full
  16845. justification) but at least if you are aware of the problem, you won’t
  16846. be so baffled when it happens.
  16847. 4.5
  16848. Searching for hyphens − In some versions of Impression, it is not
  16849. possible to search and replace hyphens. I discovered this because, for
  16850. ease of typing, I was using a double hyphen where I wanted a dash in the
  16851. text, the idea being to replace them later. Impression refused to find
  16852. any occurrences of hyphen-hyphen. Consultation with CC revealed that
  16853. improvements in automatic hyphenation have resulted in this problem. The
  16854. way round it is to search for — and replace it with −. Note the spaces
  16855. after the backslash and before the 45.
  16856. 4.5
  16857. Smart quotes − If you want smart quotes in a text, i.e. the curly ones
  16858. instead of the straight ones on the key next to the return key, you can
  16859. type them in using <ctrl-]> and <ctrl-\> for single quotes and <shift-
  16860. ctrl-]> and <shift-ctrl-\> for double quotes. However, if you think
  16861. that’s a bit of a fag to remember, use the normal quotes and then,
  16862. before printing, save the file (just in case of operator error!), save
  16863. the text with styles (perhaps to a ram disc as it’s only temporary),
  16864. select the whole text (<ctrl-T>), delete it and finally drop the saved
  16865. text back into the document. As the text is re-loaded, quotes are
  16866. automatically ‘smartened’.
  16867. 4.5
  16868. Switching styles on and off − Those of you brought up in the Mac world
  16869. may not have realised, as I didn’t until today(!) that if you want
  16870. something in, say, bold, all you have to do is press <f4> to switch it
  16871. on, type in the bit that is to be in bold and then press <f4> again. 
  16872. Obvious? Yes, it may be to those who come new to Impression but for
  16873. those of us steeped in Mac techniques, it comes as a welcome surprise.
  16874. 4.5
  16875. If there are things about using Impression that ‘came as a surprise’ to
  16876. you, send them in to us (preferably on disc) and we’ll share them with
  16877. other Impression users. We may even need an Impression Column.
  16878. 4.5
  16879. •   Rotor and other games’ passwords − One way to obtain the Rotor
  16880. passwords (and possibly other games) is to load each of the game’s files
  16881. into !Edit and use the ‘Find’ option to look for the first password. 
  16882. When the password is found, the remaining passwords should be in the
  16883. next couple of lines.  Andrew Campbell, Devon
  16884. 4.5
  16885. •   Sony TV / Monitor − I was told by Beebug that I couldn’t use my Sony
  16886. TV as a monitor with the A3000, but in fact this is quite easy to do. 
  16887. The sony TV requires a signal on pin 16 (blanking input) of the Scart
  16888. plug, which can simply be connected to pin 20 (video input).  Keith
  16889. Raven, Slough
  16890. 4.5
  16891. •   Z88 file transfer − Here is a little utility for people who wish to
  16892. transfer files from the Archimedes straight into suspended memory on the
  16893. Z88.  It saves having to break a file into smaller sections first and,
  16894. of course, there is always a memory overhead in having at least part of
  16895. the file held in the Z88 Filer.  With this BASIC program, the filer is
  16896. by-passed altogether.
  16897. 4.5
  16898.  10 REM >Suspender
  16899. 4.5
  16900.  20 REM Transfer file from Arc to Z88 suspended memory
  16901. 4.5
  16902.  30 REM ** IMPORTANT: Set z88 receive baud rate at 2400 (in panel) **
  16903. 4.5
  16904.  40 *CAT
  16905. 4.5
  16906.  50 *FX 8,5
  16907. 4.5
  16908.  60 INPUT “Send file? ”file$
  16909. 4.5
  16910.  70 *FX 3,119
  16911. 4.5
  16912.  80 OSCLI(“Type ”+file$)
  16913. 4.5
  16914.  90 FOR i%=1 TO 350
  16915. 4.5
  16916. 100 PRINT “#”
  16917. 4.5
  16918. 110 NEXT i% : REM these pad chars are need for certain types of file
  16919. 4.5
  16920. 120 *FX 3,0
  16921. 4.5
  16922. To load a file into PipeDream, enter “:COM” as the “Name of file to
  16923. load” in the files menu.  Then run “Suspender” and immediately press
  16924. <return> on the Z88.  Finally, when the BASIC prompt reappears on the
  16925. Archimedes screen, press <esc> on the Z88.
  16926. 4.5
  16927. It is kinder to your disc drive to copy the target file into the
  16928. Archimedes’ RAM filing system first.
  16929. 4.5
  16930. Jonathan Barnes, Watford
  16931. 4.5
  16932. The following Hints and Tips come from Hugh Eagle of the West Sussex
  16933. Archimedes User Group.
  16934. 4.5
  16935. •   Disappearing paragraph spaces in FWP – If, at the end of a paragraph,
  16936. you type a space immediately before the carriage return, the carriage
  16937. return will be deleted when you subsequently reformat the paragraph.
  16938. Believe it or not, this is a “feature” of First Word Plus (documented in
  16939. the version 1 manual on page 110)!
  16940. 4.5
  16941. •   Loading sprite files – When you double click on a sprite file icon,
  16942. sometimes it is displayed at the bottom left-hand corner of a blank
  16943. screen and sometimes in a !Paint window.  This is because the action the
  16944. computer takes when you try to “run” a sprite file depends on the
  16945. contents of the system variable Alias$@RunType_FF9.  This variable is
  16946. defined by default, when the Archimedes is switched on, as “ScreenLoad
  16947. %0”.  The effect of this is that when you double click on a sprite file
  16948. (type &FF9) icon, the operating system executes the instruction
  16949. *ScreenLoad [filename]; this clears the screen and then displays the
  16950. first sprite in the file at the graphics origin. However, when the
  16951. Desktop Filer “sees” the !Paint application (i.e. when a directory
  16952. window is opened in which !Paint is included) it runs the !Paint.!Boot
  16953. file which, amongst other things, redefines Alias$@RunType_FF9  in such
  16954. a way that when a sprite file is “run” the !Paint application is started
  16955. up (that is if it is not already running) and the file is loaded in.
  16956. 4.5
  16957. •   Listing the contents of your (hard) disk – The operating system
  16958. command “*Count :4.$.* RV” will catalogue the contents of the root
  16959. directory and every sub-directory.  As explained on pages 279/280 of the
  16960. User Guide, the output from this command can be redirected to the
  16961. printer by adapting the command to “*Count :4.$.* RV {printer: } ”
  16962. 4.5
  16963. Note: the spaces around the curly brackets and the > sign are important.
  16964. 4.5
  16965. This method will redirect the output to the printer without displaying
  16966. it on the screen. An alternative method will send all text that is
  16967. displayed on the screen to the printer as well: first press <ctrl-B>
  16968. (i.e. hold down the ctrl key and simultaneously type B), then issue the
  16969. command “*Count :4.$.* RV” then, when the listing has finished, press
  16970. <ctrl-C>.
  16971. 4.5
  16972. •   Removing PC Access –  The menu which appears when you click the menu
  16973. button over any of the PC Access icons on the icon bar has no Quit
  16974. option and the application doesn’t seem to appear in the Task Manager
  16975. window.  In fact, the application does appear in the Task Manager window
  16976. ... in the “Module Tasks” section. Clicking the menu button over the
  16977. application’s name there and moving to the Task ‘PC Access’ sub-menu
  16978. gives a “Quit” option.
  16979. 4.5
  16980. •   Printing via a PC – For some time I have been perplexed to find that
  16981. when I try to print a file created by the Archimedes !PrinterLJ printer
  16982. driver to a LaserJet printer attached to a PC, the printout stops part
  16983. way down the page. At first I thought it must be because of  limited
  16984. memory in the printer so I tried creating the file at a lower print
  16985. density but this made no difference to how much of the page was printed.
  16986. 4.5
  16987. I think I have now hit on the answer, namely that, when using the MS-DOS
  16988. Copy command to print a file which includes control codes, it is a good
  16989. idea to use the /b “switch”, using the syntax:
  16990. 4.5
  16991. copy [filename]/b LPT1
  16992. 4.5
  16993. The insertion of /b after the filename causes MS-DOS to copy in “binary”
  16994. mode: i.e. it copies as many bytes as there are in the file. Otherwise,
  16995. in text mode, copying will continue only until the first end-of-file
  16996. marker (Ctrl-Z or ASCII character 26) is reached whereupon it will stop.
  16997. It is of course highly likely that a graphic printfile of many thousands
  16998. of bytes will contain this character several times, so it is not
  16999. surprising that only part of the page is printed!
  17000. 4.5
  17001. •   Viewing !Draw files – The standard way to view a draw file is to load
  17002. it into !Draw. However, this has an irritating tendency to place the
  17003. part of the picture you want to see outside the visible window. There
  17004. are (at least) two convenient ways of avoiding this problem:
  17005. 4.5
  17006. One is to load the file into the !Display application from Shareware 26.
  17007. The other is to load it into an Impression frame (or, presumably, a
  17008. frame in one of the other DTP applications). In either case, the drawing
  17009. is scaled to fit the frame (the aspect ratio is preserved, so the
  17010. picture fills either the height of the frame or the width). One
  17011. advantage of Impression is that the frame can very easily be resized and
  17012. the drawing thereby magnified; another is that it makes it very simple
  17013. to display a number of drawings on a page and create an illustrated
  17014. catalogue.
  17015. 4.5
  17016. •   Floppy disc E format – So far as I know, the detailed format of ADFS
  17017. discs has not been published either in any of the manuals or in Archive.
  17018. Having recently deleted some files by mistake and been forced into some
  17019. detective work in order to recover them, I thought it might be helpful
  17020. to write down what I have found out about “E” format floppy discs:–
  17021. 4.5
  17022. With two sides, 80 tracks on each side, 5 sectors on each track, the
  17023. disc has 800 sectors of 1024 (&400) bytes each. The sectors can be
  17024. thought of as being numbered from 0 to 799 in the following order:
  17025. 4.5
  17026.    Track   Head   Sector
  17027. 4.5
  17028.        0       0       0
  17029. 4.5
  17030.        0       0       1
  17031. 4.5
  17032.        0       0       2
  17033. 4.5
  17034.        0       0       3
  17035. 4.5
  17036.        0       0       4
  17037. 4.5
  17038.        0       1       0
  17039. 4.5
  17040.        .       .       .
  17041. 4.5
  17042.        0       1       4
  17043. 4.5
  17044.        1       0       0
  17045. 4.5
  17046.        .       .       .
  17047. 4.5
  17048.        .       .       .
  17049. 4.5
  17050.       79       1       4
  17051. 4.5
  17052. Each byte on the disc has a “disc address” equal to the sector number,
  17053. as defined above, times &400 plus the number of bytes into the sector.
  17054. Put it another way:
  17055. 4.5
  17056. the disc address    =   (((( track * 2 ) + head ) * 5 ) + sector ) *
  17057. &400 + bytes into sector
  17058. 4.5
  17059. Map format − The first two sectors on the disc contain duplicate copies
  17060. of the disc map. The first 64 bytes of the map contain the following
  17061. information:
  17062. 4.5
  17063. byte  0   a checksum byte
  17064. 4.5
  17065. bytes 1/2   the number of bits to the place in the map which marks the
  17066. first free space on the disc, counting from the beginning of byte 1 (if
  17067. there is no free space this number will be zero); the top bit of the 16
  17068. is always set, so, for instance, the value &8310 in these two bytes
  17069. would indicate that the first free space in the map could be found &310
  17070. bits or &310 DIV 8 bytes from byte 1, i.e. at byte &63
  17071. 4.5
  17072. byte  3   &FF
  17073. 4.5
  17074. bytes 4-35   the “disc record” as described on pages 1012/3 of the PRM
  17075. containing various details about the disc size, etc. which are the same
  17076. on all “E” format discs, ending with the Disc ID at bytes 24/5 and the
  17077. disc name from byte 26 to byte 35.
  17078. 4.5
  17079. bytes 36-63   reserved (all zero)
  17080. 4.5
  17081. bytes 64-863 (800 bytes) – the actual disc map.
  17082. 4.5
  17083. Each byte in the map represents one disc sector and the contents of the
  17084. map indicate how the disc is divided up between the various objects
  17085. (directories and files) on it. Each portion of the map is at least 2
  17086. bytes long, it begins with an identifying number (max. 15 bits), ends
  17087. with a 1 in the top bit of the last byte and all the bits in between are
  17088. zero. Thus, for instance, if the file with the identifying number 7
  17089. occupies 3 sectors the relevant portion of the map reads as follows:
  17090. 4.5
  17091. first byte   &07
  17092. 4.5
  17093. next byte   &00
  17094. 4.5
  17095. last byte   &80  (1 in the top bit)
  17096. 4.5
  17097. The lowest identifying number is 2 and is reserved for the four sectors
  17098. which are initialised when the disc is formatted and which comprise the
  17099. two map sectors followed by the two sectors containing the root
  17100. directory. Identifying numbers are then allocated, in order, as new
  17101. objects are created.
  17102. 4.5
  17103. A file may be fragmented into several pieces, in which case several
  17104. portions of the map will contain the same identifying number.
  17105. 4.5
  17106. The portions of the map indicating free space on the disc are linked
  17107. together by a chain of pointers. As mentioned above, bytes 1 and 2, at
  17108. the start of the map sector, point to the first free space in the map.
  17109. At that point there is a similar pointer to the next free space (if any)
  17110. and so on until the last free space is reached, where the pointer is
  17111. zero.
  17112. 4.5
  17113. A defective sector on the disc is identified in the map by number 1.
  17114. 4.5
  17115. Directory structure − Each directory takes up two sectors. As mentioned
  17116. above, the root directory occupies the third and fourth sectors on the
  17117. disc (from disc address &800 to &FFF). Any sub-directory can be located
  17118. by looking up the relevant entry in its parent directory, finding the
  17119. identifying number (in the manner described below) and looking up the
  17120. number in the disc map.
  17121. 4.5
  17122. The first five bytes in a directory contain a checksum byte followed by
  17123. the string “Nick”. Then there are up to 77 entries of 26 bytes each
  17124. representing the various objects (files and sub-directories) in the
  17125. directory.
  17126. 4.5
  17127. The format of each of these entries is:
  17128. 4.5
  17129. bytes  0-9   name of file or sub-directory
  17130. 4.5
  17131. bytes 10-13   load address
  17132. 4.5
  17133. bytes 14-17   execution address
  17134. 4.5
  17135. bytes 18-21   file length
  17136. 4.5
  17137. byte  22   sector offset (see below)
  17138. 4.5
  17139. bytes 23-24   identifying number as used in the map
  17140. 4.5
  17141. byte  25   file attributes.
  17142. 4.5
  17143. If the top 12 bits of the load address are all set (i.e. are &FFF) this
  17144. means that the file is “stamped” and the remainder of the load and
  17145. execution address fields are used to record the file type and date stamp
  17146. as follows:
  17147. 4.5
  17148. load address      FFFtttdd
  17149. 4.5
  17150. execution addressdddddddd
  17151. 4.5
  17152. (the bottom byte of the load address field being used for the top byte
  17153. of the 5-byte format date and time record).
  17154. 4.5
  17155. Note: in a disc sector editor which shows the bytes in order with the
  17156. lowest byte of each word first, these 8 bytes will appear as   “dd tt Ft
  17157. FF dd dd dd dd”.
  17158. 4.5
  17159. If not all the top 12 bits are set, the load and execution addresses
  17160. will (as their names suggest) determine what the computer does when the
  17161. file is *LOADed or *RUN (or double-clicked from the Desktop).
  17162. 4.5
  17163. The sector offset in byte 22 is used where two files are mapped into the
  17164. same portion of the disc. In such a case the files share the same
  17165. identifying number (in bytes 23/4) but byte 22 indicates how many
  17166. sectors into the portion each file starts.
  17167. 4.5
  17168. A typical example of this would involve two small files each fitting
  17169. into one disc sector (they might for instance be !Boot, !Run or !Sprites
  17170. files within an application directory). Because the minimum size of a
  17171. map entry is 2 bytes representing 2 sectors on the disc, it would be
  17172. inefficient to give each file a separate map entry, so the two files
  17173. would be made to share. In this case, assuming the shared identifying
  17174. number is say 8, bytes 23 and 24 of the directory entries for both files
  17175. would be &08 and &00 but byte 22 would be &01 for the file that occupies
  17176. the first sector and &02 for the second.
  17177. 4.5
  17178. In the usual situation where a file has a map entry to itself, byte 22
  17179. is zero.
  17180. 4.5
  17181. The bits of byte 25 (the file attributes byte) are used as follows:
  17182. 4.5
  17183. bit  0   object has read access for you
  17184. 4.5
  17185. bit  1   object has write access for you
  17186. 4.5
  17187. bit  2   undefined
  17188. 4.5
  17189. bit  3   object is locked against deletion
  17190. 4.5
  17191. bit  4   object has read access for others
  17192. 4.5
  17193. bit  5   object has write access for others
  17194. 4.5
  17195. bit  6   undefined
  17196. 4.5
  17197. bit  7   undefined
  17198. 4.5
  17199. Bits 4 and 5 only have meaning to the network filing system. Bits 2, 6
  17200. and 7 should be set to zero.
  17201. 4.5
  17202. General note: If you want to explore disc maps and directories it is
  17203. very handy to have a disc sector editor such as the !DiscEdit appli
  17204. cation on Careware 2. Failing that it is reasonably easy to construct a
  17205. program to read from a disc sector by sector (rather than file by file)
  17206. and to display the contents. The key to such a program is the SWI call
  17207. “ADFS_DiscOp”. For instance, the BASIC instruction:
  17208. 4.5
  17209. SYS “ADFS_DiscOp”,0,1,address%,buffer%,length%
  17210. 4.5
  17211. will read starting at the “disc address” (as defined above) given in the
  17212. variable address%, the number of bytes given in length% (1024 for one
  17213. sector) into the address in RAM stored in buffer%. Obviously, a certain
  17214. amount of caution is advisable since a very similar command (replacing 1
  17215. with 2 for instance) could result in writing to and corrupting the
  17216. contents of a disc.
  17217. 4.5
  17218.  
  17219. 4.5
  17220.  
  17221. 4.5
  17222. {4 .5
  17223. •   Caverns − A simple map and the passwords are given at the end of the
  17224. magazine on page 60. Neil Berry
  17225.  
  17226. Impression Hints and Tips
  17227. 4.6
  17228. Here are a few more hints and tips mostly from the editor’s dabblings in
  17229. preparing the magazine...
  17230. 4.6
  17231. •   Dashes − If you, like me, don’t like to see hyphens used where dashes
  17232. should be used − i.e. in places like this − you will probably be sick
  17233. and fed up of typing <alt-153>. (Note that the character in “alt-153” is
  17234. a hyphen, just in case you weren’t aware of the difference.) If you are
  17235. importing text into Impression, occurrences of ‘hyphen hyphen’ will be
  17236. converted automatically by Impression into a long dash — see what I
  17237. mean. Personally, I prefer the shorter one so what I have done is set up
  17238. the abbreviation dictionary with ‘expand as you type’ and used an
  17239. underline character to be turned into a dash. The only drawback is that
  17240. it’s OK for things like the dashes earlier in this paragraph, but if,
  17241. for example, you use dashes in phone numbers, as 0603−766592, the
  17242. abbreviation technique does not work and you are back to  <alt-153>.
  17243. Anyone any other ideas?
  17244. 4.6
  17245. •   Find styles − If you want to find a style, get up the find/replace box
  17246. with <ctrl-f4> and then click in the menu box to the right of the Find
  17247. box and select the style you are looking for. This will come up as, say,
  17248. “”. Type an “@” after this − which stands for “any text” − and then
  17249. press <return>. This will highlight the whole of the first piece of text
  17250. with that style or effect. Unfortunately, the facility to replace that
  17251. style with another style is not yet working. If you do want to do any
  17252. search and replace on the style names, export the text, with styles, and
  17253. then use another WP such as !Edit to do the searching and replacing
  17254. before returning it to Impression.
  17255. 4.6
  17256. •   Rogue effects − Someone sent me a file in which they had used a
  17257. particular font which I did not have so when I loaded the file,
  17258. Impression told me it was changing it to Trinity.medium. I did an edit-
  17259. style and looked at all the style definitions to no avail. Eventually, I
  17260. realised that it must have been used as an effect, so how was I to find
  17261. it and eliminate it or change it to some font I did possess? Because the
  17262. font had been changed to Trinity.medium (i.e. the BaseStyle font) I
  17263. could not pick it out with a visual scan so the first idea was to change
  17264. the BaseStyle to, say, Zapf.Dingbats so that anything which was in a
  17265. different font was obviously an effect or a style. Unfortunately, this
  17266. didn’t reveal the offending effect. At this point, I became convinced
  17267. that I had a non-existent, un-removable effect, i.e. a bug in Impres
  17268. sion. So I sent the offending file to CC who informed me that the
  17269. particular effect WAS in the text and they also showed me how to locate
  17270. it... as follows...
  17271. 4.6
  17272. (Actually, the reason that I couldn’t find the effect was that I had
  17273. already gone through the document adding extra styles and had covered
  17274. this rogue font-change effect with a font-change style of my own. In
  17275. other words, the style, because it was applied later than the effect,
  17276. took precedence.)
  17277. 4.6
  17278. •   Finding effects − In the same way that you can find styles (see above)
  17279. you can also find effects as long as you tell Impression that you want
  17280. effects to be shown on the style menu. To do this, locate the file “UK”
  17281. in the Impression “Resources” directory. Load it into !Edit and find
  17282. “Cnf1:” and change it to “Cnf1:E” − that’s a one, not a letter “l”. Save
  17283. the file and shut down and re-start Impression. You then will have
  17284. effects on your style menus and search on {“effectname” }@, as explained
  17285. above.
  17286. 4.6
  17287. •   Fast search and replace − There are a couple of very useful keyboard
  17288. short-cuts not documented in the manual which speed up the search and
  17289. replace. When the “text found” box is on screen, <ctrl-R> does a
  17290. “Replace” and <ctrl-N> moves to the “Next”.
  17291. 4.6
  17292. •   Keyboard short-cuts − Apart from the ones listed on pages 119ff of the
  17293. Impression manual, here are a few more: (some are mentioned on the menu,
  17294. but not in manual)
  17295. 4.6
  17296. <ctrl-shift-D> go to chapter
  17297. 4.6
  17298. <ctrl-shift-H> produces a bullet i.e. a “•”.
  17299. 4.6
  17300. <ctrl-shift-I> also produces a bullet i.e. a “•”!
  17301. 4.6
  17302. <ctrl-shift-J> produces superscript
  17303. 4.6
  17304. <ctrl-shift-K> produces subscript
  17305. 4.6
  17306. <ctrl-shift-T> save text story
  17307. 4.6
  17308. •   Page number justification problems − Some of you may have had
  17309. difficulty getting correct centring or right justification of page
  17310. numbers on footers. This is corrected in version 2.09 − well, almost!
  17311. The footers on right hand pages were wrong last month, when I was using
  17312. version 2.05, (in fact I didn’t even notice!) and the footers on the
  17313. left hand pages would have been wrong this month (with 2.09) if I had
  17314. not found a way round it. If you try to have left aligned page number
  17315. with a right tabbed piece of text, the text suffers a left shift. I’ve
  17316. solved it for now by splitting the footer text into two separate frames,
  17317. one left aligned and the other right aligned. It’s messy, but it works. 
  17318. A
  17319. 4.6
  17320.  
  17321. Hints and Tips
  17322. 4.7
  17323. •   Ballarena − I would advise using the mouse to control your ‘bat’
  17324. because the keyboard is not very responsive. Also, note that the ‘Auto’
  17325. bat does not always respond fast enough to catch the ball, and there is
  17326. nothing you can do about it! I was very disappointed in the final
  17327. message which just congratulates you, and ends your game. The passwords
  17328. are: PUNKANDJUMP, MONTPELLIER, SEA SEX SUN, VL 86 C 010, MOUNTAINEERS,
  17329. GRENOUILLE, BLUBEDILOMAR, BRAIN KILLER, RHYTHM BOX, BOUBOULOID, MENFOU,
  17330. 32 BIT POWER, MARTINI, SEE YOU SOON, ETERNA. Mike Gregory (& Russell
  17331. Lamb).
  17332. 4.7
  17333. •   Changing !Edit’s default file types − Answering my own Help!!! plea in
  17334. Archive here’s how to change the default filetypes for !Edit:
  17335. 4.7
  17336. *DIR ADFS::4.$.RISC-OS.!Edit
  17337. 4.7
  17338.  (or your path here)
  17339. 4.7
  17340. *GOS
  17341. 4.7
  17342. *L. !RUNIMAGE 8000
  17343. 4.7
  17344. *BREAKSET 8004
  17345. 4.7
  17346. *GO 8000
  17347. 4.7
  17348. *SAVE “!RUNIMAGE” 8000+1F2C0
  17349. 4.7
  17350.  8008 8000
  17351. 4.7
  17352. *BASIC
  17353. 4.7
  17354. *L. !RUNIMAGE 8F00
  17355. 4.7
  17356. $&1B208=“ReadMe” These can be changed
  17357. 4.7
  17358. $&1B214=“DataFile” to suit your needs
  17359. 4.7
  17360. $&1B220=“ExecFile” with any string up
  17361. 4.7
  17362. $&1B22C=“EditFile” to 10chars in
  17363. 4.7
  17364. $&1B238=“!Run”        length.
  17365. 4.7
  17366. *SAVE !RUNIMAGE 8F00+1F2C0 8008 8000
  17367. 4.7
  17368. Rob Davison, Southland, New Zealand
  17369. 4.7
  17370. •   ‘Cheapo’ dialog boxes − You can make use of Wimp_ReportError instead
  17371. of writing code for a dialog box when programming wimps. The following
  17372. code fragment is an example:
  17373. 4.7
  17374. DEFPROCsave_file(name$)
  17375. 4.7
  17376. IF FNfile_there(name$) THEN IF
  17377. 4.7
  17378.  FNdialog(“A file of that
  17379. 4.7
  17380. name exists. Overwrite it?“)=FALSE THEN ENDPROC
  17381. 4.7
  17382. REM save file
  17383. 4.7
  17384. ENDPROC
  17385. 4.7
  17386.  
  17387. 4.7
  17388. DEFFNdialog(str1$):!block%=1
  17389. 4.7
  17390. :$(block%+4)=str1$
  17391. 4.7
  17392. SYS“Wimp_ReportError”,block%,
  17393. 4.7
  17394. 19,“Message from
  17395. 4.7
  17396. applic“ TO ,resp%
  17397. 4.7
  17398. =resp%=1
  17399. 4.7
  17400. where the string “Message From Application” is <20 characters in length.
  17401. 4.7
  17402. The only disadvantages are that all other desktop activity is suspended,
  17403. the machine beeps (if wimpflags bit 4 is not set) and that the user has
  17404. to answer “OK” or “CANCEL” instead of the more logical “YES” or “NO”.
  17405. However, this saves a great deal of programming and can be very useful
  17406. at times (This is why FWP2 stops printing − See Archive 3.10 p 25). Rob
  17407. Davison, New Zealand.
  17408. 4.7
  17409. •   Cleaning A310 keyboard contacts − I recently had a very nasty
  17410. intermittent fault on my A310. It began as a line of 222222222’s being
  17411. printed at the cursor, for no apparent reason. Also the ‘2’ key of the
  17412. numbers keypad wouldn’t function occasionally. This was accompanied by a
  17413. more worrying symptom where the screen display would suddenly go hay-
  17414. wire and only occasionally would right itself after switching the
  17415. machine off and then on.
  17416. 4.7
  17417. Eventually, it was cured by cleaning the key-contact of the ‘2’ (keypad)
  17418. and on the basis of “If it works, don’t fix it”, I didn’t clean any
  17419. other keys. After having the machine checked at a local dealer (£17.50)
  17420. and some discussion with Archives’ Technical Help, it was assumed that
  17421. the screen break-up was due to CMOS *Configuration settings somehow
  17422. being changed to Monitor-Multisync, by the spurious keyboard input. The
  17423. problem has not occurred since.
  17424. 4.7
  17425. For anyone else with keyboard problems, here’s how I cleaned mine: Lay
  17426. the keyboard upside-down and remove all 8 screws under the keyboard base
  17427. and gently lift off the base. Remove the 6 larger screws, securing the
  17428. PCB to the keyboard top-cover. Lift out the complete PCB and keys unit.
  17429. The keytops are all secured in a frame which is, in turn, secured by 20-
  17430. odd small screws from the PCB underside. Take them all out (and put them
  17431. somewhere safe) and, keeping the whole kaboodle together with a firm
  17432. grip, turn it over and set it down right-side up. The complete set of
  17433. keys can now be lifted slowly off the PCB, exposing the rubber contact/
  17434. covers. These are glued with a weak glue. I found that all the rubber
  17435. bits stayed stuck to the PCB. I gently peeled away the rubber contact/
  17436. cover at the offending key position and marvelled at how the dirt had
  17437. managed to penetrate so far, considering that the cover was stuck down.
  17438. The keyboard key contacts (A310) are just gold plated discs of PCB
  17439. copper, easily cleaned with switch cleaner and a non-hairy paper-towel
  17440. or cloth. If you have to blow away any bits, use a camera ‘puffer
  17441. brush’. If you have to use your mouth to blow away grit, crumbs etc,
  17442. wait for any teeny drops of condensation to evaporate. Spit doesn’t make
  17443. a good contact cleaner and some spirit-based cleaners may tend to
  17444. dissolve the pcb-surface varnish which will be smeared over the
  17445. contacts’ surface. Your local electronics hobby shop (e.g. Tandy) should
  17446. have cans of switch-cleaner at £2 − £3 (which is a lot cheaper than £120
  17447. for a new keyboard(!) and well worth the extra effort of DIY).
  17448. 4.7
  17449. D.P.Allen, Surrey
  17450. 4.7
  17451. •   Data cartridges for tape streamers revisited − Further to the hint in
  17452. 3.6 p2, the metal variety of DAT can become unreliable after three or
  17453. four writes and so it is better to use the non-metal variety e.g.
  17454. Memorex tapes. Mr Chapman, London
  17455. 4.7
  17456. •   RISC-OS printing hints − Printing out with the RISC-OS printer drivers
  17457. is very easy. However I found several areas which are not well explained
  17458. and one or two things which are down right misleading!
  17459. 4.7
  17460. •   PRM pages 1526-1528 sprite plotting commands must be with reference to
  17461. the address of the sprite not the name, so if you use
  17462. 4.7
  17463. SYS “OS_SpriteOp”,&122,
  17464. 4.7
  17465. spriteaddr%,“name”,0
  17466. 4.7
  17467. ,xpos%,ypos%
  17468. 4.7
  17469. then, when printing, the error “Sprite Not known” will be returned. The
  17470. solution is to use &222 and an address instead of the sprite name.
  17471. Addresses for a named sprite can be found with
  17472. 4.7
  17473. SYS“OS_SpriteOp”,&118
  17474. 4.7
  17475. addr is in R2 on exit − see PRM page 406.
  17476. 4.7
  17477. •   PRM page 1532. Always use −1 (for current) as the destination mode
  17478. with “ColourTrans_Select-Table” if you specify a mode (even the current
  17479. one) ColourTrans will not set up the table correctly resulting in
  17480. strange looking sprites on printout.
  17481. 4.7
  17482. •   When rendering Draw objects remember to decrease ‘flatness’ to a lower
  17483. value. A useful way of calculating it is to divide the default (512) by
  17484. the print resolution divided by 90 eg. flat= 512/(printxres%/90) where
  17485. printxres% might be 300 − as read from
  17486. 4.7
  17487. SYS “PDriver_Info” TO,printxres%
  17488. 4.7
  17489. printyres% the 90 comes from a normal approximately 90 dots per inch on
  17490. screen. Rob Davison, Southland, New Zealand
  17491. 4.7
  17492. •   Saving the CMOS RAM settings − In recent editions of Archive (e.g.
  17493. 4.3, p.10 and 4.5, p. 21) there have been repeated mentions of the
  17494. problem which arises when a battery failure deletes all the information
  17495. in the CMOS RAM.
  17496. 4.7
  17497. There is one very simple way of solving this problem: On Careware Nº 6
  17498. you will find the application !SysUtil by Jon Marten; one of the choices
  17499. it offers is “Save Configuration”!
  17500. 4.7
  17501. All you have to do is copy the Utility and the “ConfigFile” it produces
  17502. to some disc where they are easily accessible − not the hard disk!
  17503. 4.7
  17504. After the dreaded memory loss you simply load !SysUtil and drag the
  17505. ConfigFile icon onto the !SysUtil icon and confirm that you want to
  17506. change the configuration. Jochen Konietzko, Koeln, Germany
  17507. 4.7
  17508. •   Shutdown of hard drives − During the recent experience I have had due
  17509. to the volume of hardware I’ve been setting up and testing, the
  17510. following items have come to light.
  17511. 4.7
  17512. MR45’s seemed to be suffering from corruption but, when reformatted, the
  17513. problem went away, so where did the corruption come from?
  17514. 4.7
  17515. A little further investigation revealed that a verify scan caused the
  17516. Closedown procedure of the drive not to occur.
  17517. 4.7
  17518. It was found that, in order to close the drive down properly, a *bye and
  17519. two ªShutdowns were required! At first, this was thought to only relate
  17520. to MR45’s but, in fact, it has been found that this is not so, and even
  17521. my own machine (A440/1 with standard Acorn hardware) does similar
  17522. things.
  17523. 4.7
  17524. So, how do you know whether your hard drive is shut down properly? If an
  17525. <f12> is followed by a *bye, a staccato blip from the drive LED should
  17526. occur and a short sharp click noise should emit from the drive itself.
  17527. This is not the closedown condition.
  17528. 4.7
  17529. A *shutdown will now give a flickering performance from the drive LED
  17530. and a multiple clicking from the drive lasting about half a second.This
  17531. is the shutdown condition with the heads parked and isolated from the
  17532. discs and closedown of the system can now occur. Ray Maidstone, Norwich.
  17533. 4.7
  17534. •   !UIM_Hack update (cf Archive 3.10 p 9) − This utility allows you to
  17535. edit characters in The 4th Dimension’s U.I.M. game. It has now been
  17536. updated and improved by the author, David Sheperdson, and has been put
  17537. on this month’s program disc.
  17538. 4.7
  17539. Impression Hints and Tips
  17540. 4.7
  17541. •   Beware thin lines − It seems that Impression can’t cope with the very
  17542. thinnest lines that Draw can produce. It does not display them properly
  17543. on the screen and sometimes doesn’t print them properly. The answer is
  17544. to use 1 mm lines instead. This came to light when Brian Cowan was using
  17545. graphs generated by the graph plotting utility (on Shareware Nº 31)
  17546. which apparently uses these thin lines. (This has only been tested in
  17547. version 2.05.)
  17548. 4.7
  17549. •   Double-clicking on a graphic opens the “alter graphic” window, (For
  17550. those who don’t read manuals.)
  17551. 4.7
  17552. •   Help! − Does anyone know how to create a new Master Page based on an
  17553. existing master page? It’s a real pain to have to change the margins
  17554. every time you create a new master page. Why can’t you have a new master
  17555. page just slightly different from an existing one? The particular
  17556. application was where I wanted to try two, three, four, five columns
  17557. etc. for a document and every time I wanted to change the number of
  17558. columns, I had to create a new master page, changing the margins from to
  17559. the 5 mm I wanted before changing the number of columns and the inter-
  17560. column gap. (Mind you, I did find one short-cut as a result of having to
  17561. do this over and over again. If you click in the first margin box, you
  17562. can use <ctrl-U> to remove the “12.7mm”, then press <5> and then <down>
  17563. will move you to the next box and you can repeat the <ctrl-U>, <5>,
  17564. <down> for each box. This applies to most of the dialogue boxes − <down>
  17565. moves you to the next box requiring input. Yes, I know it says this in
  17566. the manual, but I didn’t see it.)
  17567. 4.7
  17568. Anyway, can I put my plea another way? Is there any way of editing a
  17569. master page other than sliding the boxes around? Can you edit, by
  17570. entering numbers, the sizes of the margins, for example?
  17571. 4.7
  17572. •   Search & replace again − We mentioned last month that, when doing a
  17573. find and replace, <ctrl-N> finds the Next occurrence, <ctrl-R> does a
  17574. Replace of the marked text. Be warned though that, if the find box is
  17575. on-screen, <ctrl-A> no longer deletes the character at the cursor (as
  17576. <copy> does) it forces All the replaces to occur from the cursor
  17577. downwards to the very end of the document. I found this the hard way
  17578. while attempting to do a selective search and replace at the top of a
  17579. large document. I was changing a column of words into a list by
  17580. replacing
  17581. 4.7
  17582.  with a comma and a space. You can just imagine the havoc that the
  17583. “replace all” command reeked on my (unsaved!!!) document. You have been
  17584. warned! By the way, <ctrl-E>, presumably relating to Every or End, has
  17585. exactly the same effect as <ctrl-A>. (This has only been tested on
  17586. 2.09.)
  17587. 4.7
  17588. •   Transferring text between documents − In Archive 4.2 p.8, there was a
  17589. hint about the transfer of text between two documents. The implication
  17590. was that this was not possible with Impression. This is not true − it is
  17591. just done differently. You select the text in question, press <ctrl-C>,
  17592. move to the appropriate spot in the other document, click once and
  17593. insert the text with <ctrl-V>! Jochen Konietzko, Koeln, Germany  A
  17594. 4.7
  17595.  
  17596. Hints and Tips
  17597. 4.8
  17598. •   ARM code errata − The following is for all those who have an unshak
  17599. able faith in the integrity of Acorn’s code:
  17600. 4.8
  17601. The code given to return from SWI “OS_ BreakPt” on page 736 of the PRMs
  17602. is incorrect. The following works.
  17603. 4.8
  17604. .backtobreak%
  17605. 4.8
  17606.    SWI “OS_EnterOS”
  17607. 4.8
  17608.    ADR R14,breaksave
  17609. 4.8
  17610.    LDMIA R14,{r0-r14 }^
  17611. 4.8
  17612.    LDR R14,[R14,#15*4]
  17613. 4.8
  17614.    ADD R14,R14,#4
  17615. 4.8
  17616.    MOVS PC,R14
  17617. 4.8
  17618. The code given on page 231 of the old BASIC User Guide (under CALL) is
  17619. incorrect. For example, to use MATCH, the line tokenisation routine, the
  17620. following code will work. This has been corrected in the new BASIC User
  17621. Guide.
  17622. 4.8
  17623. .tokenise
  17624. 4.8
  17625.    STMFD R13!,{r14 }
  17626. 4.8
  17627.    ADD R0,R14,#18*4
  17628. 4.8
  17629.    ADR R1,source
  17630. 4.8
  17631.    ADR R2,dest
  17632. 4.8
  17633.    MOV R3,#1
  17634. 4.8
  17635.    MOV R4,#0
  17636. 4.8
  17637.    ADR R14,cominghome
  17638. 4.8
  17639.    MOV PC,R0
  17640. 4.8
  17641. .cominghome
  17642. 4.8
  17643.    LDMFD R13!,{pc }
  17644. 4.8
  17645. .source
  17646. 4.8
  17647.    EQUS STRING$(90,CHR$(0))  ALIGN
  17648. 4.8
  17649. .dest
  17650. 4.8
  17651.    EQUS STRING$(90,CHR$(0))  ALIGN
  17652. 4.8
  17653. J Heher, South Africa
  17654. 4.8
  17655. •   BASIC printing to a DeskJet Plus − The April issue of Archive
  17656. contained a Help!!! plea about printing from Archimedes BASIC to a
  17657. DeskJet 500. I have a DeskJet Plus and have successfully printed from
  17658. BASIC. For reference, my printer is normally set with the function
  17659. switches 6 and 8 in bank A and 2 in bank B up, all others are down.
  17660. 4.8
  17661. To print, I use the command VDU 2,1,27,1,38, 1,107,1,49,1,71 (see Line
  17662. Termination in Appendix 8.19 of the Owner’s Manual). Here is an example
  17663. of how it can be used:
  17664. 4.8
  17665.  10 REM >PrintTest
  17666. 4.8
  17667.  20 VDU 2,1,27,1,38,1,107,1,49,1,71
  17668. 4.8
  17669.  30 PRINT “TEST OF NORMAL PRINTING”
  17670. 4.8
  17671.  40 VDU 1,27,1,38,1,100,1,49,1,68
  17672. 4.8
  17673.  50 PRINT “This is underlined”
  17674. 4.8
  17675.  60 VDU 1,27,1,38,100,1,64
  17676. 4.8
  17677.  70 VDU 1,27,1,40,1,115,1,51,1,66
  17678. 4.8
  17679.  80 PRINT “This is BOLD printing”
  17680. 4.8
  17681.  90 VDU 1,27,1,40,1,115,1,48,1,66
  17682. 4.8
  17683. 100 VDU 1,27,1,40,1,115,1,50,1,48, 1,72
  17684. 4.8
  17685. 110 PRINT “This is 20 PITCH”
  17686. 4.8
  17687. 120 VDU 1,27,1,69 :REM reset printer
  17688. 4.8
  17689. 130 VDU 3
  17690. 4.8
  17691. 140 END
  17692. 4.8
  17693. A Kitchenside, Weybridge
  17694. 4.8
  17695. •   Big memory tips − As a footnote to my own article in last month’s
  17696. Archive on making best use of machines with more than 1M memory, I’d
  17697. like to add one more tip. I was reminded by a review of Protext, which
  17698. noted that the current version does not multi-task, that my eleventh tip
  17699. might have been, “boycott non multi-tasking packages”. Since, with 1M,
  17700. you couldn’t really multi-task two significant applications, this was
  17701. not a problem. Now, it’s a real pain in the neck not to be able to have
  17702. several applications with simultaneously active windows, much of the
  17703. power and ease-of-use of RISC-OS is being un-used and it’s annoying
  17704. knowing that 3M of your upgrade is being wasted!
  17705. 4.8
  17706. So, unless there’s a really good reason such as a time-critical sound
  17707. sampler or video screen grabber, I suggest that we boycott such
  17708. packages. Then, software producers would have to bring them up to date
  17709. and not try to palm us off with “Arthur programs with !Run and !Boot
  17710. files”. In an ideal world, software sellers would refuse to stock them
  17711. but at least they could be marked as such, perhaps indicating their
  17712. antiquity by listing them in a suitable script? Stuart Bell, Brighton.
  17713. 4.8
  17714. •   C book − I was recommended a good C book which I used on a C short
  17715. course I attended: The Waite Group’s “New C Primer Plus”, First Edition
  17716. 1990, editor Howard W Sams & Co, ISBN 0−672−22687−1. It covers ANSI C,
  17717. UNIX, Microsoft C and Turbo C.   S. Stel, Netherlands.
  17718. 4.8
  17719. •   ChangeFSI update − A new version of ChangeFSI v0.79 is available from
  17720. Acorn Direct for £19.95. This will handle more image formats than would
  17721. v0.69: Degas PI1, PI2 & PI3, !Translator Clear, MacPaint 579x720x1 bit/
  17722. pixel, ZSoft .PCX, Windows3 .BMP, Pineapple 16 bit/pixel, UNIX rle, PC
  17723. TGA. Unfortunately it will not run from the desktop under !ChangeFSI
  17724. (Shareware Disc 21) as is. This is because version 0.79 is 94 Kbytes
  17725. long, compared with 74K for v0.69. The solution is to edit the !Run file
  17726. of !ChangeFSI and increase the WimpSlot from 128K to 160K. All is then
  17727. well. A Quayle, Chester
  17728. 4.8
  17729. •   C txt library − This idea was inspired by the article ‘Introduction to
  17730. C’ – Part 5, in Archive 3.6. This gave a complete RISC-OS application
  17731. using the libraries supplied with Release 3 of Acorn C. In particular,
  17732. it used the ‘txt’ library to provide a window to display text generated
  17733. by the sample program. This requires a minimum of effort by the
  17734. programmer since the library looks after most of the problems.
  17735. 4.8
  17736. Although it works as described, it has two major disadvantages. The
  17737. first is the slow speed during text generation. The second is the
  17738. operation of the window controls. In particular, the cursor control keys
  17739. cannot be used to move the text through the window, the close icon has
  17740. no effect and the vertical scroll bars can only be dragged. Here are
  17741. some techniques which overcome these problems.
  17742. 4.8
  17743. Improved text generation speed turns out to be a very simple modifi
  17744. cation since the cause of the slow operation is the redrawing of the
  17745. window for every item added to the text buffer using, for example, the
  17746. txt_insertstring function. Two extra lines are required; the first turns
  17747. off the display updates when text generation starts and the second turns
  17748. it back on when the operation is complete. The lines shown below should
  17749. be inserted immediately after the visdelay_begin() statement and
  17750. immediately before the visdelay_ end() statement in the original program
  17751. function sysvars_to_text().
  17752. 4.8
  17753. /* turn off display update */
  17754. 4.8
  17755. txt_setcharoptions(t, txt_DISPLAY, FALSE);
  17756. 4.8
  17757.  
  17758. 4.8
  17759. /* turn on display update */
  17760. 4.8
  17761. txt_setcharoptions(t, txt_DISPLAY, TRUE);
  17762. 4.8
  17763. Improving text window control requires rather more code but again the
  17764. principle is fairly straightforward. Firstly an event handler has to be
  17765. registered for the text window following its successful creation by the
  17766. txt_new() function using the following statement:
  17767. 4.8
  17768. /* register the text window event handler */
  17769. 4.8
  17770. txt_eventhandler(t, user_txevent, NULL);
  17771. 4.8
  17772. This registers the function user_txevent which will be called to process
  17773. text window events.
  17774. 4.8
  17775. The function itself has to process all the events which the user
  17776. requires. A sample function is given below which is commented to show
  17777. which events are being processed. The keyboard key macro definitions
  17778. given in ‘akbd.h’ are used for consistency but, in addition, the ‘Home’
  17779. key must also be defined using a macro as this is omitted from ‘akbd.h’.
  17780. The actual key values required are defined in the PRM, page 1198 and the
  17781. macro definitions are given in file ‘akbd.h’. Note, however, that the
  17782. definitions given for both akbd_ PageUpK and akbd_PageDownK are wrong so
  17783. I have not used these but used their correct definition in the following
  17784. code. The value txt_ EXTRACODE is added to the key value to represent
  17785. the equivalent window operation. A full list of these is given on page
  17786. 325 of the ANSI C Release 3.
  17787. 4.8
  17788.  
  17789. 4.8
  17790. #include “akbd.h”
  17791. 4.8
  17792.  
  17793. 4.8
  17794. #define HOME        (30)
  17795. 4.8
  17796.  
  17797. 4.8
  17798. /***********************************
  17799. 4.8
  17800. user_txevent    text window event handler
  17801. 4.8
  17802.         t            text object
  17803. 4.8
  17804.         h            event handle
  17805. 4.8
  17806. ***********************************/
  17807. 4.8
  17808. void user_txevent(txt t, void *h)
  17809. 4.8
  17810. {lines ; /* number of lines in window */
  17811. 4.8
  17812.  
  17813. 4.8
  17814.  h = h;
  17815. 4.8
  17816.  while (txt_queue(t) > 0)
  17817. 4.8
  17818.  {number of lines visible in window */
  17819. 4.8
  17820.   lines = txt_visiblelinecount(t);
  17821. 4.8
  17822.  
  17823. 4.8
  17824.   /* process the next user event code */
  17825. 4.8
  17826.   switch (txt_get(t))
  17827. 4.8
  17828.   {+ akbd_Fn+127:
  17829. 4.8
  17830.     /* close window icon */
  17831. 4.8
  17832.     txt_hide(t);
  17833. 4.8
  17834.     break;
  17835. 4.8
  17836.   
  17837. 4.8
  17838.    case akbd_UpK:
  17839. 4.8
  17840.    case txt_EXTRACODE + akbd_UpK:
  17841. 4.8
  17842.    case txt_EXTRACODE + akbd_Sh + akbd_Ctl + akbd_UpK:
  17843. 4.8
  17844.     /* scroll up one line */
  17845. 4.8
  17846.     txt_movevertical(t, –1, TRUE);
  17847. 4.8
  17848.     break;
  17849. 4.8
  17850.   
  17851. 4.8
  17852.    case akbd_DownK:
  17853. 4.8
  17854.    case txt_EXTRACODE + akbd_DownK:
  17855. 4.8
  17856.    case txt_EXTRACODE + akbd_Sh + akbd_Ctl + akbd_DownK:
  17857. 4.8
  17858.     /* scroll down one line */
  17859. 4.8
  17860.     txt_movevertical(t, 1, TRUE);
  17861. 4.8
  17862.     break;
  17863. 4.8
  17864.   
  17865. 4.8
  17866.    case akbd_Sh + akbd_UpK:
  17867. 4.8
  17868.    case txt_EXTRACODE + akbd_Sh + akbd_UpK:
  17869. 4.8
  17870.     /* scroll up one page */
  17871. 4.8
  17872.     txt_movevertical(t, -lines, FALSE);
  17873. 4.8
  17874.     break;
  17875. 4.8
  17876.    case akbd_Sh + akbd_DownK:
  17877. 4.8
  17878.    case txt_EXTRACODE + akbd_Sh + akbd_DownK:
  17879. 4.8
  17880.     /* scroll down one page */
  17881. 4.8
  17882.     txt_movevertical(t, lines, FALSE);
  17883. 4.8
  17884.     break;
  17885. 4.8
  17886.   
  17887. 4.8
  17888.    case akbd_Ctl + akbd_UpK:
  17889. 4.8
  17890.    case HOME:
  17891. 4.8
  17892.     /* move to start of text */
  17893. 4.8
  17894.     txt_setdot(t, 0);
  17895. 4.8
  17896.     break;
  17897. 4.8
  17898.   
  17899. 4.8
  17900.    case akbd_Ctl + akbd_DownK:
  17901. 4.8
  17902.    case akbd_Sh + akbd_CopyK:
  17903. 4.8
  17904.     /* move to end of text */
  17905. 4.8
  17906.     txt_setdot(t, txt_size(t));
  17907. 4.8
  17908.     break;
  17909. 4.8
  17910.   
  17911. 4.8
  17912.    default:
  17913. 4.8
  17914.     break;
  17915. 4.8
  17916.   }
  17917. 4.8
  17918.  }
  17919. 4.8
  17920.  return;
  17921. 4.8
  17922. }
  17923. 4.8
  17924. David Scott, Stockport
  17925. 4.8
  17926. •   Connection problems − If you are having connection problems with RS423
  17927. connectors, or video or printer − or a dongle, it may be because the
  17928. plugs are not ‘going home’ properly into the sockets on the back of the
  17929. computer. I have noticed this particularly on A540’s, but it could also
  17930. occur on other Archimedes computers. This may be because the fixing
  17931. pillars either side of the socket are too high. The solution it to take
  17932. a pair of pliers (or a box spanner if you have a suitable sized one) and
  17933. remove each of the pillars in turn, take off the washer and screw the
  17934. pillar back in. That extra millimetre can make all the difference.
  17935. 4.8
  17936. •   CPC monitor − When my multisync died on me suddenly and I was forced
  17937. to make do with what I had − a well worn Amstrad CPC green screen
  17938. monitor. In practice it was fairly easy to connect the six-pin CPC
  17939. connector to the nine-pin connector on the A3000:
  17940. 4.8
  17941.    Archimedes      CPC
  17942. 4.8
  17943.    1, 2 & 3   −   6
  17944. 4.8
  17945.    6, 7, 8 & 9   −   5
  17946. 4.8
  17947.    5   −   4
  17948. 4.8
  17949. Naturally, it is impossible to use the multisync modes but it certainly
  17950. is almost as sharp a picture on the tube as on my multisync and much
  17951. cheaper. If your main interest is games I wouldn’t recommend it but for
  17952. most business uses it is perfectly all right. I guess you could get a
  17953. second hand green CPC monitor for next to nothing in the UK as many
  17954. owners have exchanged them for the new CPC monitors. Ask your local
  17955. dealer! A spare monitor could come in handy any day! Tord Eriksson,
  17956. Sweden.
  17957. 4.8
  17958. •   !Edit − For what seems like an eternity I have been wrestling with the
  17959. problem of importing text from a wordprocessor (in my case View). What I
  17960. wanted to do was free the text from newline characters in order that, on
  17961. loading it into Ovation, it could be formatted to new column width, in
  17962. whatever point size, without the newline control code producing extra
  17963. linefeeds. At the same time, it should retain the carriage returns
  17964. marking the paragraphs and multi-line spacing. This way I did not lose
  17965. all the style. What follows is how I do it . It might seem obvious but
  17966. it could help someone who is as thick as me. If I have missed the point
  17967. would some kind person tell me before I go mad.
  17968. 4.8
  17969. After loading your text into !Edit, go through the text ensuring that
  17970. there are double returns at the end of each paragraph and on multiple
  17971. line text like program listings or poetry.
  17972. 4.8
  17973. My technique is firstly to change double returns into something which is
  17974. unlikely to appear elsewhere in the text, thus:
  17975. 4.8
  17976. Press <F4> to select Find
  17977. 4.8
  17978. In the Find dialogue box enter  \n\n <return>
  17979. 4.8
  17980. In the Replace dialogue box enter  ZCZC<return>
  17981. 4.8
  17982. Click on the Magic Character box
  17983. 4.8
  17984. Click on the Go box
  17985. 4.8
  17986. Click on End of File Replace
  17987. 4.8
  17988. Click on Stop
  17989. 4.8
  17990. Press <ctrl-up> to move the cursor to the top
  17991. 4.8
  17992. Now, to replace the single returns:
  17993. 4.8
  17994. Press <F4> to select Find
  17995. 4.8
  17996. In the Find dialogue box enter  \n <return>
  17997. 4.8
  17998. In the Replace dialogue box press <space>
  17999. 4.8
  18000. Click on Go
  18001. 4.8
  18002. Click on End of File Replace
  18003. 4.8
  18004. Click on Stop
  18005. 4.8
  18006. Press <ctrl-up>
  18007. 4.8
  18008. Then, to restore the double returns to single ones:
  18009. 4.8
  18010. Press <F4> to select Find
  18011. 4.8
  18012. In the Find dialogue box enter  ZCZC<return>
  18013. 4.8
  18014. In the Replace dialogue box enter \n <return>
  18015. 4.8
  18016. Click on Go
  18017. 4.8
  18018. Click on End of File replace
  18019. 4.8
  18020. Click on Stop
  18021. 4.8
  18022. You should have your text with the paragraph and multi-line spacing
  18023. intact. (Simplified from a hint sent in by R Follett, Winnersh, Berks.)
  18024. 4.8
  18025. •   Improving sound quality − Further to the comments by Jeremy Mears
  18026. (Archive 4.7 p 21) there is no need, on the A3000, to actually solder to
  18027. the motherboard. You can make contact to the appropriate resistors using
  18028. micro test clips (Tandy − £1.50 for four). This would, I suppose, still
  18029. invalidate the warranty but is less obvious than blobs of solder on the
  18030. p.c.b.! To get access to the resistors, you have to remove the disc
  18031. drive by unscrewing it from underneath. R86 is under the keyboard side
  18032. of the drive whereas R99 is under the middle of the drive. Pin 1 of the
  18033. expansion port is the furthest right (looking from the keyboard side of
  18034. the computer). Gerald Williams, Aldershot.
  18035. 4.8
  18036. •   Multiple height and width text printing − I know that the emphasis
  18037. these days is on programs which multi-task and use mode 12 on the
  18038. desktop but not every program is suitable for this and some of these
  18039. programs require larger than usual height characters.
  18040. 4.8
  18041. I am (slowly) developing a word game for the Archimedes, from one I
  18042. wrote last year on my Model B. The “B” version uses mode 2, with double
  18043. height routines written in machine code for speed. The original version
  18044. of this code was quite “illegal” and would not work on a Master but it
  18045. was fast! With it, I could also have text printed 3 or even 4 times
  18046. normal height just as quickly. However, I am new to the Archimedes and
  18047. ARM code is currently beyond me, so after trying various routines in
  18048. BASIC I came across VDU23,17,7. This gives characters at any height and
  18049. any width and is very fast! I can even get half width which gives the
  18050. impression of mode 1 characters in mode 2. Also, it works in most Screen
  18051. modes (except 3, 6 & 7).
  18052. 4.8
  18053. I’ve put together a short routine which demonstrates how easy and fast
  18054. this routine is. To use it, all you have to do is append the PROCedure
  18055. to your program and call it with the colour you wish it to appear in,
  18056. the X & Y positions, the height and width of the characters and the
  18057. Text$ − the routine will do the rest! One point to bear in mind,
  18058. however, is that text is printed using the graphic cursor, i.e. under
  18059. VDU 5 and MOVE or PLOT, rather than the text cursor and VDU 31, X%,Y%.
  18060. 4.8
  18061. Even though this demonstration program is about 20 lines long, the only
  18062. bits you need are in PROCtext(colour, X_co_ord, Y_co_ord, Height, Width,
  18063. Text$). The function FNvdu simply returns the text width of the screen
  18064. mode window in use and this is used to check if lines are too long in
  18065. the first line of PROCtext. The second line in PROCtext is personal as I
  18066. like being able to centralise text without effort! To do so, just set X%
  18067. to -1. The %110 sets bits 1 and 2 so that both characters and spacing
  18068. are altered at the same time. %100 sets spacing, while %010 will alter
  18069. just character sizes. It is also possible to use 0.5 as Height or Width
  18070. but that works better in “chunky” modes, like 2 rather than 12. When the
  18071. width is set to an odd number, the “auto-centralising” is sometimes a
  18072. little off so you may prefer to set up the X co-ord manually.
  18073. 4.8
  18074. REM >$.Height/Wid.!RunImage
  18075. 4.8
  18076. :
  18077. 4.8
  18078. DIM block% 12, output% 12
  18079. 4.8
  18080. MODE12:COLOUR3
  18081. 4.8
  18082. :
  18083. 4.8
  18084. PROCtext(1,-1,1,2,3,“Multi Height & Width!”)
  18085. 4.8
  18086. PROCtext(2,-1,4,2,1,“Double Height, Normal Width”)
  18087. 4.8
  18088. PROCtext(3,-1,7,1,2,“Normal Height, Double Width”)
  18089. 4.8
  18090. PROCtext(4,-1,10,3,3,“3 * 3 Format”)
  18091. 4.8
  18092. PROCtext(5,-1,15,4,1,“Ridiculous! 4 X 1 !!”)
  18093. 4.8
  18094. PROCtext(6,-1,20,1,1,“You should reset the height & width
  18095. 4.8
  18096.  before finishing”)
  18097. 4.8
  18098. PROCtext(6,-1,21,1,1,“but as it stands the PROCedure will
  18099. 4.8
  18100. do this anyway”)
  18101. 4.8
  18102. END
  18103. 4.8
  18104. :
  18105. 4.8
  18106. DEFPROCtext(C%,X%,Y%,H,W,T$)
  18107. 4.8
  18108. F%=FNvdu
  18109. 4.8
  18110. IF F%-(LENT$*W)<=0 THEN ERROR 300,“Line too long”
  18111. 4.8
  18112. GCOL C%
  18113. 4.8
  18114. Y%=1000-(Y%*32)
  18115. 4.8
  18116. IF X%=-1 THEN X%=(F%-LENT$*2)/(W*2)
  18117. 4.8
  18118. IF W=1 THEN X%=(F%-LENT$)/4
  18119. 4.8
  18120. X%=X%*32
  18121. 4.8
  18122. VDU 23,17,7,%110,W*8;H*8;0;
  18123. 4.8
  18124. VDU 5,25,4,X%;Y%;
  18125. 4.8
  18126. PRINT T$
  18127. 4.8
  18128. VDU 4,23,17,7,%110,8;8;0;
  18129. 4.8
  18130. ENDPROC
  18131. 4.8
  18132. :
  18133. 4.8
  18134. DEF FNvdu
  18135. 4.8
  18136. !block%=256
  18137. 4.8
  18138. block%!4=-1
  18139. 4.8
  18140. SYS“OS_ReadVduVariables”,block%,
  18141. 4.8
  18142. output%
  18143. 4.8
  18144. =!output%
  18145. 4.8
  18146. •   Off screen desktop windows − Normally, the filer and switcher windows
  18147. are forced to stay within the confines of the screen but, by altering
  18148. their template files, it is possible to make them move ‘off screen’ and
  18149. thus help to reduce window ‘clutter’.
  18150. 4.8
  18151. To do this, you have to copy the window templates from the DeskFS to a
  18152. directory called Templates. First, create a directory called Templates
  18153. in the root directory of your harddisc or ‘workdisc’ and then type the
  18154. following:
  18155. 4.8
  18156. *deskfs
  18157. 4.8
  18158. *copy templates.filer  scsifs::scsidisc4.$.templates.filer
  18159. 4.8
  18160. *copy templates.switcher  scsifs::scsidisc4.$.templates.filer
  18161. 4.8
  18162. (You can also copy netfiler, palette and wimp windows across if
  18163. required.)
  18164. 4.8
  18165. Load the window template data into !FormEd (Shareware Disc 20) and set
  18166. the ‘no bounds’ option for each window. Then, edit your disc !boot file
  18167. to include the following line:
  18168. 4.8
  18169. Set Wimp$Path scsifs::scsidisc4.
  18170. 4.8
  18171. (or whatever your system is!) Don’t forget the full stop at the end.
  18172. This points Wimp$Path in the direction of the updated windows.
  18173. 4.8
  18174. Finally re-boot your machine to see the result!  M Roscoe, Ealing
  18175. 4.8
  18176. •   PrinterDM with the Star LC24−10 − I was interested to see the note on
  18177. !PrinterDM and the LC24-10 in March’s edition of Archive. May I draw
  18178. your attention to the “Hint and Tip” which I had published in the March
  18179. edition of Risc User on the same subject but concerning a different
  18180. problem. I was initially disappointed in the results I obtained with
  18181. Impression Junior (and from the Ovation test disc and, to a lesser
  18182. extent, !Draw printouts). This was due to some lines of text having a
  18183. marked “slewed” effect. After speaking to Star, and much sleuthing, I
  18184. tracked down the problem to the very same line in the PrData file of
  18185. !PrinterDM (version 1.12). There is apparently some incompatibility
  18186. between the Star and the Epson LQ800. The former does not like the “zero
  18187. absolute tab” command used to obtain the CR without LF. The solution was
  18188. to substitute the commands used in the FX80 module, although modified to
  18189. use the correct line feed command for 24 pin printers. With my version
  18190. of !PrinterDM I have not experienced any squashed text with the 24/180
  18191. inch feed (could the writer have been in IBM mode where the command
  18192. gives n/216 inches rather than n/180 inches?) but the bigger feed
  18193. suggested in March’s tip could equally well be used. The modified line
  18194. is as follows:
  18195. 4.8
  18196. line_epilogue “<27>A<0><13><27>2<27>J<24>”
  18197. 4.8
  18198. I’m surprised that this matter has not previously been commented on,
  18199. especially as I think it also applies to the XB24-10.  A.F. Taylor,
  18200. Poole
  18201. 4.8
  18202. •   Quattro to Schema transfer − To move data files from Quattro, first
  18203. save the file with a WKI extension. Then you can use Schema’s !sch123 to
  18204. translate the file into Schema format. This method leaves all sorts of
  18205. spurious bits and pieces which have to be edited out by hand but it does
  18206. work.  M Green, Devon
  18207. 4.8
  18208. •   Quitting First Word Plus − If you quit First Word Plus (release 2)
  18209. from the task manager while a text file is loaded, you will be thrown
  18210. out of the desktop. If other applications are running that may object
  18211. e.g. Draw, Paint, etc, they will announce what is about to happen and
  18212. give you a chance to prevent it. Otherwise you will lose any files that
  18213. you may have been working on in First Word Plus.     R Bunnett,
  18214. Swanley
  18215. 4.8
  18216. •   Reading disc names − For those software writers who need to check that
  18217. the user has inserted an appropriate disc in the disc drive the
  18218. following function returns the name if the disc currently inserted:
  18219. 4.8
  18220. DIM block% 5
  18221. 4.8
  18222. :
  18223. 4.8
  18224. DEF FNdiscname
  18225. 4.8
  18226. SYS “OS_GBPB”,5,,block%
  18227. 4.8
  18228. ?(block%+?block% +1)=13
  18229. 4.8
  18230. =$(block%+1)
  18231. 4.8
  18232. M Sawle, Hampshire
  18233. 4.8
  18234. •   !Schema VAT rate − New spreadsheets are created with various user
  18235. names available, one of which is “Vat”. To change this from 0.15 to
  18236. 0.175, look in the !Schema directory and then in the Menu directory and
  18237. you should find a file called StartUp. This has a write-lock on it so
  18238. you will have to use ‘Access’ off the filer menu to enable it to be
  18239. changed. At the end of this file are a number of lines that start with
  18240. ‘putusn’, the first of which is the Vat rate which simply needs to be
  18241. changed before the file is again saved and the write-lock access
  18242. restored. Ian Hamilton, Harrow.
  18243. 4.8
  18244. •   Spaced filenames − If you want a <space> in a disc or file name, use a
  18245. hard space. This is available by pressing either <alt><1><6><0> or
  18246. <alt><space>. You should note that if you do use it then you can’t use
  18247. the copy key on a catalogue because the Archimedes thinks that the
  18248. character is a normal space (which is illegal in a filename). E Hughes,
  18249. Derbyshire
  18250. 4.8
  18251. •   Twin World cheats − The file SavedGame can be edited using !Edit to
  18252. cheat. Byte values of interest include:
  18253. 4.8
  18254. Byte 1 = Level (Maximum = 22 = &16)
  18255. 4.8
  18256. Byte 4 = Red Spells (Maximum 99 = &63)
  18257. 4.8
  18258. Byte 5 = Blue Spells (Maximum 99 = &63)
  18259. 4.8
  18260. Byte 6 = Green Spells (Maximum 99 = &63)
  18261. 4.8
  18262. Bytes 8-11 = Score, low byte first. (Maximum = 999999 = &F423F )
  18263. 4.8
  18264. Byte 12 = Lives (Maximum = 9 or 10 = &9 or &0A)
  18265. 4.8
  18266. Remember all value are in hex, so use the magic character option in
  18267. !Edit’s Find.  Stuart Turgis
  18268. 4.8
  18269. •   TwinWorld hints
  18270. 4.8
  18271. − Owls in the forest can be killed by jumping up and firing.
  18272. 4.8
  18273. − Similarly, on some occasions you will have to jump, but fire on the
  18274. way down to hit denizens close to you.
  18275. 4.8
  18276. − Jump between worlds whenever possible − if you loose a life, you’re
  18277. taken back to the last time you changed worlds.
  18278. 4.8
  18279. − Stamping your feet can reveal objects − either treasure or keys.
  18280. 4.8
  18281. − Beware of calling the genie when you are already carrying two other
  18282. sorts of objects (remember the horn is one), because you won’t be able
  18283. to buy an object which you don’t already hold.
  18284. 4.8
  18285. − Beware when shooting the three-headed dragon. If you don’t shoot the
  18286. head furthest away from you, it flies away from you and fires an almost
  18287. continuous salvo.
  18288. 4.8
  18289. − Watch out for extended jump − you can sometimes use it when you don’t
  18290. realise − on some screens it’s essential and you may only have a limited
  18291. amount.
  18292. 4.8
  18293. − Watch out for the parachute − in the last few levels I found I
  18294. couldn’t get rid of it and it limited my objects to just two types.
  18295. 4.8
  18296. − When firing at the bird − if you duck, it flies lower to avoid your
  18297. fire. Stand until the bird is fairly close, then crouch and fire.
  18298. 4.8
  18299. − When the giant clam fires at you, or the Big eye, if you run so the
  18300. ‘bullet’ is off the screen it will disappear.
  18301. 4.8
  18302. Impression
  18303. 4.8
  18304. Hints & Tips
  18305. 4.8
  18306. Bruce Goatly (BG), who is busy writing a book about using Impression,
  18307. very kindly sent us some hints & tips (in return for permission to use
  18308. our H&T in his book!). Most of the rest of the H&T are from the editor’s
  18309. experiences with the unreleased version 2.09. (Version 2.10 is not ready
  18310. for release so 2.05 is still the latest officially available version.)
  18311. 4.8
  18312. •   Abbreviation expansion − Use it to correct common spelling errors or
  18313. to enforce house style (I often type ‘ans’ for ‘and’ and ‘thw’ for
  18314. ‘the’, and the house style for my book is ‘disk’ whereas I almost always
  18315. spell it ‘disc’). BG.
  18316. 4.8
  18317. •   Date and time format − As I continually forget what day it is, I use
  18318. the Insert date option quite a lot. If you want to change the format of
  18319. the date (the default is in the form 6th April 1991), load the !Run file
  18320. into Edit and alter the definition of the variable Impression$DateFormat
  18321. (see pp. 337-339 of the User Guide, on using system variables).
  18322. Similarly, you can alter the time format by editing
  18323. Impression$TimeFormat. BG.
  18324. 4.8
  18325. •   Dongle connection problems − If you are having problems with a dongle
  18326. that keeps saying it is not present and you find that you need to wiggle
  18327. it (just a little bit!) to recognise its presence, go back and read the
  18328. hint above about ‘Connection problems’. Alternatively, CC themselves
  18329. offer a hint about it. They say that it is important to quit properly
  18330. from Impression and not just do a <ctrl-break>, otherwise the dongle
  18331. might need to be left for a couple of hours for a capacitor to discharge
  18332. before Impression can be loaded again.
  18333. 4.8
  18334. •   Line spacing and font changes − If a line in the middle of a paragraph
  18335. starts with a different font from the lines around it, the line spacing
  18336. may be upset for that one line because of the way Impression does its
  18337. calculations. The way round it is to put the cursor at the start of the
  18338. offending line, cancel the font change at that point and insert a ‘null’
  18339. character (such as Alt-131). This will be invisible but will correct the
  18340. line spacing. BG.
  18341. 4.8
  18342. •   Loading text files − If you want to load a text file into Impression,
  18343. there is no need to create a new document first − just drag the Edit
  18344. file onto the Impression icon and it will set up an untitled document
  18345. and load the text into a null frame.
  18346. 4.8
  18347. •   Marking a single character − If you are doing DTP in a lower resolu
  18348. tion screen mode, you may be finding it difficult to use the mouse to
  18349. drag-mark a single character e.g. the ‘l’ in ‘will’. One way of doing it
  18350. is to move the cursor between two of the characters, click <select> but
  18351. firmly hold the mouse in place. Then you use the cursor left or right,
  18352. as appropriate, to move the cursor to the other side of the character to
  18353. be marked and finally press <adjust>. George Foot, Oxted.
  18354. 4.8
  18355. My method of doing any of this kind of detailed work is to have two
  18356. windows open on the same document − which is extremely easy to do
  18357. (another advantage over PageMaker!) − one shows the full page and one
  18358. just an enlarged section of the text. Then you can flick backwards and
  18359. forwards between the two views enlarging and contracting the windows or
  18360. simply pushing them to the back when they are not wanted.
  18361. 4.8
  18362. (However, have you noticed that Impression sometimes insists on going
  18363. back to the beginning of the document when you expand and contract the
  18364. window using the size switch icon in the top right hand corner of the
  18365. window? Has anyone worked out why it happens and, more importantly, how
  18366. to stop it?)
  18367. 4.8
  18368. •   Special characters − The list in Appendix 5 of the Impression II
  18369. manual gives a printout of all the characters. This is useful, but there
  18370. is some variation from one typeface to another, so it would be useful to
  18371. have an Impression file of it so that you could print it out in your
  18372. particular typeface. I’ll put a file of it on the monthly program disc,
  18373. but if you want to do it yourself, you can run the following program and
  18374. put the text into a multi-column Impression document.
  18375. 4.8
  18376. 10 REM > CHARLISTER
  18377. 4.8
  18378. 20 *SPOOL CHARS
  18379. 4.8
  18380. 30 @%=2
  18381. 4.8
  18382. 40 FOR N% = 32 TO 255
  18383. 4.8
  18384. 50 PRINT N%;CHR$(9);
  18385. 4.8
  18386. “{”“heading”“on }{” ;CHR$(N%); “}”
  18387. 4.8
  18388. 60 NEXT
  18389. 4.8
  18390. 70 *SPOOL
  18391. 4.8
  18392. •   Spell-checking − Not really a hint, but I was using the spelling
  18393. checker and it offered me the word “faltness” and told me that
  18394. “flatness” was wrongly spelled. Also, while spell-checking, someone had
  18395. written “Beebugs’ policy”. The spelling checker knows Beebug but can you
  18396. guess what it offered me as an alternative for the accidental plural?
  18397. Yes, that’s right, “Bedbugs”! On the same theme, I spell-checked my
  18398. Factfile and came up with Motley Electronics, Mike Leecher of EMU Ltd,
  18399. ARM3’s from Aloof One and IDLE drives from Ian Copycats. Then I tried
  18400. some of our contributors and found Brain Cowman, Dim Parkland and last,
  18401. but not least, Pall Beggarly.
  18402. 4.8
  18403. •   Tickets please! − (The following saga gives, firstly, an unnecessarily
  18404. long method of doing a job but one which illustrates techniques which
  18405. might prove useful in other circumstances. It is followed by the easier,
  18406. smarter method!) I wanted to make some numbered tickets at A6 size so I
  18407. made up an A4 page with four copies of the ticket. I used a two column
  18408. master page so that I could just take a copy of the text on the page and
  18409. paste it 14 times to make my 60 tickets. Near the bottom of each ticket,
  18410. it said, “Ticket number: ” with an appropriate blank space. Then I
  18411. created four guide frames on the master page at about the right place to
  18412. put in the ticket numbers and inserted four new frames on each page. I
  18413. then went through linking all the frames together. To create the text
  18414. for the numbers, I used PipeDream using the “row” command and copying it
  18415. down 60 rows. I then “saved” this in tab format straight into the first
  18416. ticket number frame and, instantly, all the tickets were numbered.
  18417. Brilliant! The only real hassle was lining up the ticket number boxes
  18418. with the words on the ticket. The problem is that although you can have
  18419. both the text and the master page on screen at the same time and at the
  18420. same magnification (which helps), the main page is not updated until the
  18421. master page is closed so I changed the “preferences” to make the master
  18422. page come up at the right magnification.
  18423. 4.8
  18424. (A similar technique of linked frames is used for the running heads on
  18425. the magazine − i.e. the articles’ names at top outside corners of the
  18426. pages. The dummy Archive, before articles are inserted, has a whole
  18427. string of 60 “X”s, one on each page, alternately left and right aligned.
  18428. Then, when an article has been inserted, the running heads are altered
  18429. using selective search and replace to change, for example, “X” into
  18430. “Hints & Tips”. This is easier than using copy and paste because it
  18431. preserves the left and right alignment. But I digress... let me get back
  18432. to the tickets...)
  18433. 4.8
  18434. Then I suddenly realised the easy way of doing it.... Create the ticket
  18435. at full A4 size on the master page using “Ticket number: ” and then
  18436. inserting the page number. (Use <menu> − Misc − Insert − Current page
  18437. number − Numeric.) Then, all you do is to add 59 pages (click on “Insert
  18438. new page” with <adjust>, not <select> so that the menu option stays on
  18439. the screen) and use “Fit lots” on the “Print” dialogue box reducing the
  18440. scale to 50%. If you find that it still says, “Fit lots (1)” at 50% and
  18441. you have to go down to about 48% before it goes to (4), click on
  18442. “Setup...” and select the option to “Ignore page boundary”. If you don’t
  18443. do this but print out at 48%, you will find that the margins are
  18444. unequal. This is a much quicker way of doing it than the previous method
  18445. and also gives the possibility of deciding that you want the tickets
  18446. smaller after all so you just reduce the scale and, perhaps, change to
  18447. sideways printing.
  18448. 4.8
  18449. •   Widows & orphans − This is the technical term for where you get a
  18450. paragraph split so that a single line is on one page (or column) and the
  18451. rest is on the previous or next. If the first line is split off from the
  18452. rest, the solution is fairly obvious − use <ctrl-G> at the beginning of
  18453. the paragraph to push the line onto the next column. The odd line at the
  18454. end of a paragraph is less easy. If the text is left justified, you can
  18455. again use <ctrl-G> to push one more line to the next column to join the
  18456. lonely orphan. However, if you subsequently edit the paragraph so that
  18457. the layout of the lines changes, you have to edit out the <ctrl-G>.
  18458. Also, this doesn’t work at all if you are using full justification
  18459. because the <ctrl-G> causes the justification on the last line of the
  18460. column to be lost and it looks like the end of a paragraph without a
  18461. full stop. The only solution I can find is to create a new frame with
  18462. <ctrl-I> and lay it over the last line of the column. This forces that
  18463. line over to the next column without losing the justification.
  18464. 4.8
  18465. SCSI Hints & Tips
  18466. 4.8
  18467. •   Removable drive problems − We are beginning to understand more about
  18468. the problems with removable drives. Let me explain... SCSI drives are
  18469. intelligent and they keep their own record of any duff sectors. However,
  18470. this record is not available to the user. If you tell the computer to
  18471. “format” the disc, it deliberately ignores any sectors it already knows
  18472. are duff. If you get a “soft error” i.e. where the data gets corrupted
  18473. so that the CRC check shows up an error, reformatting will clear the
  18474. problem. However, if the disc surface is actually damaged, it may be
  18475. that reformatting clears the problem temporarily but, with time, the
  18476. problem may reappear and you will get the dreaded “Disc error 10 at... ”
  18477. or whatever. The solution to this is to use the *DEFECT command provided
  18478. by RISC-OS. If you get an error, *VERIFY the disc, note the addresses
  18479. which are thrown up as either suspect or actually having a disc error,
  18480. say, 7CEC00, 7CEE00 and 7CF000 and then type in
  18481. 4.8
  18482. *DEFECT SCSI::5 7CEC00
  18483. 4.8
  18484. *DEFECT SCSI::5 7CEE00
  18485. 4.8
  18486. *DEFECT SCSI::5 7CF000
  18487. 4.8
  18488. where SCSI::5 is the drive definition. It is worth recording these
  18489. addresses in case you need to format the disc again in the future. You
  18490. then need to enter the *DEFECT commands again. If *DEFECT finds that you
  18491. are trying to map out a sector that is allocated to a file or directory,
  18492. it will tell you so, in which case, you will have to copy the file or
  18493. directory and delete the one which it says is in the way.
  18494. 4.8
  18495. Obviously, it is better if you can avoid getting hard errors in the
  18496. first place so, just as a reminder, (1) always dismount the drive
  18497. properly before switching off the power and (2) keep your drive cool by
  18498. not packing other hardware around it.
  18499. 4.8
  18500. •   Removable drive problems (Part 2) − Surely there can’t be any MORE
  18501. problems with the removable drives − they really won’t be worth selling.
  18502. Yes, there are more problems but, yes, I still think they are worth
  18503. selling. If you try to use the MR45’s or the Atomwide equivalent on an
  18504. Acorn SCSI podule or on a TechnoSCSI (I have not tried any others), you
  18505. will find that occasionally they just hang up − usually when copying a
  18506. sequence of files. It is a timing problem which Acorn say they will look
  18507. into but they are not too optimistic. They say that Syquest, who make
  18508. the drive mechanisms, have interpreted the SCSI standards in a different
  18509. way from other drive manufacturers. The Acorn engineers have tried to
  18510. modify their software to accommodate Syquest’s idiosyncrasies but
  18511. although they have managed to make a version of their software that will
  18512. work when copying lots of files, they find that it does not format the
  18513. cartridges properly! It is not beyond the bounds of possibility to get
  18514. SCSI software to work on the Syquest drives − both Oak and Lingenuity
  18515. have done it successfully but, as yet, there is no satisfactory way of
  18516. running them on Acorn or TechnoSCSI cards.
  18517. 4.8
  18518. I should say to A540 owners, that, although I am using a Syquest
  18519. removable drive on my A540, I am doing so on an Oak podule. I made the
  18520. change (before I realised there was any problem) purely on the basis
  18521. that (1) the Oak software is the easiest to use on the MR45’s because of
  18522. the ease of dismounting and re-mounting discs and (2) it is the fastest
  18523. that I have tried. (I have not yet tried the offerings from HCCS or The
  18524. Serial Port but unless they have specifically tailored their software
  18525. for the Syquest mechanisms, I doubt that they will work.)
  18526. 4.8
  18527. •   SCSI land speed record − Oak are claiming an Archimedes drive speed
  18528. record. Their 300M HS drive, on an A440 with a 20MHz ARM3, runs at 1939
  18529. / 1761 / 1043  Kbytes/sec in modes 0, 15 and 21 respectively. Can anyone
  18530. beat that?  A
  18531. 4.8
  18532.  
  18533. Hints and Tips
  18534. 4.9
  18535. •   Beware spaces − There is a problem with spaces at the end of OS
  18536. variables:
  18537. 4.9
  18538. If you include in a !Run file code such as the following:
  18539. 4.9
  18540. Set ThisApp$Dir <Obey$Dir>
  18541. 4.9
  18542. Run <ThisApp$Dir>.!RunImage
  18543. 4.9
  18544. then beware that you don’t include a space at the end of the first line!
  18545. If you do, the space will be included in the definition of ThisApp$Dir
  18546. and the second line will cause a “Bad File Name” error. Hugh Eagle.
  18547. 4.9
  18548. •   PC emulator with an ARM3 − The default boot-up process for the ARM3
  18549. performs an RMClear command, killing all RAM resident modules including,
  18550. in particular, the module that drives the ARM3. So, in order, to get the
  18551. PC emulator to take advantage of the ARM3‘s extra speed you need to
  18552. alter the line in !PC.Genboot.!Config immediately after the one that
  18553. reads “Perform RMClear?” from “Y” to “N”! (Thanks to Martin Coulson of
  18554. Atomwide for this advice.) Hugh Eagle
  18555. 4.9
  18556. •   Printer tips − You can alter the halftone density by editing the
  18557. PrData file within your printer driver (see Archive 4.6 for an example
  18558. of how to find this). For instance, PrinterLJ has lines such as:
  18559. 4.9
  18560. pxres_halftone:300/8
  18561. 4.9
  18562. pyres_halftone:300/8
  18563. 4.9
  18564. so each halftone dot is actually formed of a matrix of 8x8 dots, giving
  18565. a halftone density of 300/8=37.5 dpi. This gives a very coarse effect
  18566. but can produce 65 different grey levels. Altering the lines to:
  18567. 4.9
  18568. pxres_halftone:300/6
  18569. 4.9
  18570. pyres_halftone:300/6
  18571. 4.9
  18572. gives “only” 37 grey levels and a dot pitch of 50 dpi. Experiment to see
  18573. what suits your printer best.
  18574. 4.9
  18575. A word of caution. I used !Draw to produce some PCB artwork, printed it
  18576. out using !PrinterLJ on a DeskJet Plus and sent it off... Disaster! The
  18577. size was OK across the width but was 1.5% too small along the length of
  18578. the paper, as was discovered when the finished circuit boards came back.
  18579. I’d previously had no trouble using an Epson-compatible printer, so it
  18580. may be something to do with the friction feed on the HP slipping, or
  18581. perhaps a slightly thicker paper would have helped. Anyway, if your hard
  18582. copy must be accurate, then check it! Jonathan Oakley, Cambridge.
  18583. 4.9
  18584. •   Printing * command output − Ever since I got my LaserDirect I have
  18585. been laboriously printing the results of *Status, *Dump, etc. by
  18586. directing the output to a file and then printing the file (while
  18587. bemoaning the loss of the <Ctrl-B>, etc. facility à la BBC). However, I
  18588. have just realised that it is easier (and much more in keeping with
  18589. Acorn’s RISC-OS standards, I am sure) to open a Task Window in !Edit,
  18590. enter the * command (which puts its output in the window) and then print
  18591. the contents of the window by “saving” to the printer driver icon. In
  18592. other words, click <menu> on the !Edit icon on the icon bar and use
  18593. Create − New Task window. This presents you with a new window with a *
  18594. ready for a command. Type in the command whose output you want listing,
  18595. say, *STATUS. When the listing has finished, click on the window with
  18596. <menu> and go Edit − Save and drop the text file produced onto your
  18597. printer icon. Easy! (Then close the window, answering ‘Yes’ to ‘Kill and
  18598. close’.) Hugh Eagle
  18599. 4.9
  18600. •   Printing via a RISC-OS printer driver from a BASIC program − Have you
  18601. ever wondered why your computer has a button called “Print” that doesn’t
  18602. seem to do anything of the sort?
  18603. 4.9
  18604. At last, applications seem to be appearing that recognise that pressing
  18605. the <Print> key is rather an intuitive way of printing (Impression and
  18606. Poster are two examples). Also, I have discovered that RISC-OS printer
  18607. drivers are not nearly as fearsome as the PRM makes them seem and it is
  18608. actually quite easy to incorporate into your own program’s printing
  18609. routines which are activated by ... wait for it ... the <Print> key.
  18610. Amazing!
  18611. 4.9
  18612. Take the Painting application from the original Arthurian Welcome disc,
  18613. for instance. We still use this in my family because it is so simple,
  18614. but it has always (incredibly) lacked a printing facility. To rectify
  18615. this, proceed as follows:
  18616. 4.9
  18617. Put this line near the beginning of the program (e.g. immediately after
  18618. PROCdesktop (at about line 200):
  18619. 4.9
  18620.  PROCPrintSetup(110000)
  18621. 4.9
  18622. Note: 110,000 bytes is big enough to allow the program to run in mode
  18623. 20. 55,000 would be enough for mode 12.
  18624. 4.9
  18625. Put this line in the WimpPoll loop (e.g. immediately after the ENDCASE
  18626. statement at around line 400):
  18627. 4.9
  18628. IF INKEY-33 THEN PROCPrint(162,232,1274,972)
  18629. 4.9
  18630. Note: INKEY-33 is the crucial function that recognises whether the
  18631. <Print> key is being pressed.
  18632. 4.9
  18633. Finally, put these procedures at the end of the program:
  18634. 4.9
  18635. DEF PROCPrintSetup(SpriteAreaSize%)
  18636. 4.9
  18637. DIM SpriteArea% SpriteAreaSize%
  18638. 4.9
  18639. !SpriteArea%=SpriteAreaSize%
  18640. 4.9
  18641. SpriteArea%!8=16
  18642. 4.9
  18643. SYS “OS_SpriteOp”,9+256,SpriteArea%
  18644. 4.9
  18645. ENDPROC
  18646. 4.9
  18647.  
  18648. 4.9
  18649. DEF PROCPrint(X1%,Y1%,X2%,Y2%)
  18650. 4.9
  18651. SYS “Hourglass_On”
  18652. 4.9
  18653. PrintHandle%=OPENOUT(“printer:”)
  18654. 4.9
  18655. SYS “PDriver_SelectJob”,PrintHandle% ,0 TO Old%
  18656. 4.9
  18657. ON ERROR LOCAL PROCPrintError
  18658. 4.9
  18659.  
  18660. 4.9
  18661. MOVE X1%,Y1%:MOVE X2%,Y2%
  18662. 4.9
  18663. SYS “OS_SpriteOp”,14+256, SpriteArea%,“TempSprite”,1 : REM Get sprite
  18664. 4.9
  18665.  
  18666. 4.9
  18667. DIM RectBlock% 15,Transform% 15,PrintPosition% 7
  18668. 4.9
  18669. RectID%=1
  18670. 4.9
  18671. BackCol%=&FFFFFF00:REM set background colour to white
  18672. 4.9
  18673.  
  18674. 4.9
  18675. REM X1%, Y1%, etc. are the screen coordinates of the area
  18676. 4.9
  18677. to be printed
  18678. 4.9
  18679. !RectBlock%=X1%:RectBlock%!4=Y1%
  18680. 4.9
  18681. RectBlock%!8=X2%:RectBlock%!12=Y2%
  18682. 4.9
  18683.  
  18684. 4.9
  18685. REM No scaling or rotation required
  18686. 4.9
  18687. !Transform%=&10000:Transform%!4=0
  18688. 4.9
  18689. Transform%!8=0:Transform%!12=&10000
  18690. 4.9
  18691.  
  18692. 4.9
  18693. REM Put the bottom LH corner 1.5“ REM from the left AND 5” from the
  18694. 4.9
  18695. REM bottom of the page
  18696. 4.9
  18697. !PrintPosition%=1.5*72000
  18698. 4.9
  18699. PrintPosition%!4=5*72000
  18700. 4.9
  18701.  
  18702. 4.9
  18703. SYS “PDriver_GiveRectangle”,RectID%, RectBlock%,Transform%,
  18704. PrintPosition%,BackCol%
  18705. 4.9
  18706. SYS “PDriver_DrawPage”,1,RectBlock%, 0,0 TO More%,,RectID%
  18707. 4.9
  18708. WHILE More%
  18709. 4.9
  18710.   SYS “OS_SpriteOp”,34+256
  18711. 4.9
  18712. ,SpriteArea%,“TempSprite”
  18713. 4.9
  18714. ,X1%,Y1%,0
  18715. 4.9
  18716.   SYS “PDriver_GetRectangle”,, RectBlock% TO More%,,RectID%
  18717. 4.9
  18718. ENDWHILE
  18719. 4.9
  18720. SYS “PDriver_EndJob”,PrintHandle%
  18721. 4.9
  18722. SYS “Hourglass_Smash”
  18723. 4.9
  18724. CLOSE#(PrintHandle%)
  18725. 4.9
  18726. ENDPROC
  18727. 4.9
  18728.  
  18729. 4.9
  18730. DEF PROCPrintError
  18731. 4.9
  18732. SYS “PDriver_Abort”,PrintHandle%
  18733. 4.9
  18734. SYS “Hourglass_Smash”
  18735. 4.9
  18736. CLOSE#(PrintHandle%)
  18737. 4.9
  18738. ENDPROC
  18739. 4.9
  18740. Hugh Eagle
  18741. 4.9
  18742. •   Running one application from inside another If you’ve ever been
  18743. puzzled by odd behaviour when you try to run one application from inside
  18744. another, the following advice from Mark Neves of Computer Concepts’
  18745. Technical Support Department may help.
  18746. 4.9
  18747. My particular problem arose when I tried to make sure that a printer
  18748. driver was loaded by running !PrinterXX from within application A’s !Run
  18749. file. The result was that application A failed to run and when I quit
  18750. !PrinterXX, an error was reported.
  18751. 4.9
  18752. The answer is that when you run a “sibling task” from another appli
  18753. cation’s run file the sibling “takes over the current environment” until
  18754. it terminates and only then does it return control to the parent task
  18755. (in a manner analogous to a subroutine call).
  18756. 4.9
  18757. The solution is to use the command
  18758. 4.9
  18759. * Desktop <sibling task name>
  18760. 4.9
  18761. rather than *Run.  Hugh Eagle
  18762. 4.9
  18763. •   “Saving” data from one application to another − (This is another of
  18764. those “obvious to those who know it” hints.) If you want to transfer
  18765. data (e.g. text or a sprite or a drawn object) from one RISC-OS
  18766. application to another you don’t have to save it on a disc from
  18767. application A and then load it into application B; all you have to do is
  18768. drag the icon from application A’s “Save” box (i.e. the window that
  18769. appears when you choose a Save menu option) into application B’s window.
  18770. 4.9
  18771. This works with all well behaved (“RISC-OS compliant”) applications,
  18772. e.g. !Edit, !Draw, Impression, !Paint, !Poster, etc. and generally works
  18773. for either the whole contents of a window or for selected items. Hugh
  18774. Eagle
  18775. 4.9
  18776. •   Sprite plotting and colour translation − The ColourTrans section of
  18777. the PRM (pages 1399 to 1424) includes references to a number of SWI’s
  18778. (including, in particular, ColourTrans_SelectTable) which have to be
  18779. called with R1 pointing to the “source palette”. Since, according to PRM
  18780. pages 390−391, a sprite’s palette data starts 44 bytes after the
  18781. beginning of the sprite, it seems clear that, in order to translate a
  18782. sprite’s palette you simply call the ColourTrans SWI with
  18783. SpritePointer%+44 in R1, doesn’t it? Wrong!!!
  18784. 4.9
  18785. In fact, the palette data in a sprite appears to include 8 bytes for
  18786. each colour with the second 4 bytes duplicating the first 4 (does anyone
  18787. know why this is?) whereas ColourTrans expects only 4 bytes per colour.
  18788. 4.9
  18789. So, before you can translate a sprite’s colours, you need to include
  18790. some code on the following lines:−
  18791. 4.9
  18792. PaletteLength%=SpritePointer%!32−44
  18793. 4.9
  18794. IF PaletteLength%=0 THEN
  18795. 4.9
  18796.  PalettePointer%=0
  18797. 4.9
  18798. ELSE
  18799. 4.9
  18800.  FOR I%=0 TO PaletteLength%-8 STEP 8
  18801. 4.9
  18802.   Palette%!(I%/2) = SpritePointer%!(I%+44)
  18803. 4.9
  18804.  NEXT
  18805. 4.9
  18806.  PalettePointer%=Palette%
  18807. 4.9
  18808. ENDIF
  18809. 4.9
  18810. Note: The palette data, if any, starts 44 bytes after the beginning of
  18811. the sprite. SpritePointer%!32 contains the number of bytes from the
  18812. beginning of the sprite to the start of the actual sprite pixel data. If
  18813. this equals 44, there is no palette.
  18814. 4.9
  18815. The point of setting PalettePointer% to 0 if there is no palette data,
  18816. is that if the sprite has no palette then, in many cases, (especially if
  18817. the sprite is defined in a 256 colour mode) it makes sense to call
  18818. ColourTrans with R1 set to 0 since ColourTrans will then translate the
  18819. default palette for the sprite’s mode. However ...
  18820. 4.9
  18821. •   Strange sprite colours − Ever since RISC-OS arrived, I’ve been puzzled
  18822. by the odd colours which have appeared when some sprites have been
  18823. plotted by various applications (including Impression, no less). I think
  18824. that, at last, I’m beginning to understand why. Consider the following
  18825. curious state of affairs:
  18826. 4.9
  18827. Palette details are an optional part of the sprite data format. A lot of
  18828. sprites are created by !Paint. !Paint, by default, creates sprites
  18829. without a palette (presumably on the assumption that, having been
  18830. designed in the Desktop colour scheme, they will be used on the
  18831. Desktop.)
  18832. 4.9
  18833. The PRM (page 1278) recommends that you should use the ColourTrans
  18834. module for best results when plotting or printing a sprite. However,
  18835. although ColourTrans knows how to translate from any given palette and
  18836. from the default palette for any mode, it doesn’t seem to be equipped
  18837. with any means of translating the standard desktop palette of a mode
  18838. other than the current one.
  18839. 4.9
  18840. Therefore, the best that applications can do when faced with a palette-
  18841. less sprite is to tell ColourTrans to assume that the sprite was defined
  18842. in the default palette for its mode. The trouble with this is that it is
  18843. about the worst possible thing that can be done with a sprite defined to
  18844. be used on the Desktop since, for instance, colour 0 which is intended
  18845. to be white, will be translated by ColourTrans, working from the default
  18846. palette, into black! For example, even Impression reverses the colours
  18847. of its standard document icon.
  18848. 4.9
  18849. So, what’s to be done? As far as I can tell:
  18850. 4.9
  18851. The best advice is to make sure that every sprite has a palette. If this
  18852. isn’t possible then, for plotting sprites on the Desktop, use
  18853. Wimp_ReadPixTrans if a sprite doesn’t have a palette (this is the
  18854. routine that the Wimp manager uses for plotting sprites as icons and
  18855. seems to produce quite acceptable results on the whole) and save
  18856. ColourTrans calls for sprites that do have palettes. For example, follow
  18857. the above palette conversion routine with code something like this:
  18858. 4.9
  18859. SYS “ColourTrans_SelectTable”,Mode%, PalettePointer%,-1,-1,ColTable%
  18860. 4.9
  18861. IF PaletteLength%<>0 THEN
  18862. 4.9
  18863.   SYS “OS_SpriteOp”,52+512,Sprites% ,SpritePointer%,200,200,
  18864. Mask%*8,Scale%,ColTable%
  18865. 4.9
  18866. ELSE
  18867. 4.9
  18868.   IF NumberOfColoursInSprite%<63 THEN SYS “Wimp_ReadPixTrans”, 512,
  18869. Sprites%,SpritePointer% ,,,,,ColTable%
  18870. 4.9
  18871.   SYS “OS_SpriteOp”,52+512,Sprites%, SpritePointer%,200,200,
  18872. 4.9
  18873. Mask%*8,Scale%,ColTable%
  18874. 4.9
  18875. ENDIF
  18876. 4.9
  18877. If you’re plotting to a printer, “Wimp_ReadPixTrans” doesn’t help and I
  18878. don’t think there is any straightforward, foolproof method. (It would be
  18879. possible, I think, to create a block of palette data with the RGB values
  18880. for the colours of the Desktop palette in the relevant mode and then
  18881. feed this into ColourTrans, but this would be a rather tedious process.)
  18882. Hugh Eagle
  18883. 4.9
  18884. Impression Hints and Tips
  18885. 4.9
  18886. •   Adding fonts by using search & replace − As a mathematics and physics
  18887. teacher, I use a lot of Greek letters and it is rather bothersome to
  18888. have to work through all those menus to reach the effect “Greek” every
  18889. time. Therefore, I use search & replace in a way which (at least in the
  18890. Impression Junior handbook) is not documented:
  18891. 4.9
  18892. I type the text, using the Latin equivalents of the Greek letters (“g-
  18893. Quant” instead of “g-Quant”) then, when I have finished the text, I use
  18894. the following:
  18895. 4.9
  18896.    Find: g-Quant
  18897. 4.9
  18898.    Replace: g-Quant
  18899. 4.9
  18900. Impression does the rest. (Many thanks to Computer Concepts for the
  18901. information!)
  18902. 4.9
  18903. By the way, if you wish to find out how all the other effects are saved
  18904. in an Impression document, there is an easy way to find out: Just take a
  18905. document with lots of effects and save only the text story (“with
  18906. effects”). If you then drag the icon of the saved text story onto the
  18907. !Edit icon, the text will appear with all the effects in plain language. 
  18908.  Jochen Konietzko, Koeln, Germany
  18909. 4.9
  18910. (Wouldn’t it be easier to use <ctrl-F6> and edit the “Greek” style, go
  18911. down to the bottom where it says “Key short-cut”, click in the box and
  18912. press, say, <ctrl-shift-F9>, then OK it? Then when you want, say, “g-
  18913. Quant”, you type “<ctrl-shift-F9>g<ctrl-shift-F9>-Quant”.... Oh, I see,
  18914. Impression Junior doesn’t have styles. Oh well, nice try!)
  18915. 4.9
  18916. •   Cutting invisible text − If you have more text in a frame than will
  18917. fit, you get the little red arrow which indicates that some of the text
  18918. is invisible. You could obviously create a new frame, click on the over-
  18919. full frame and then click <adjust> on the new frame but there may still
  18920. be too much for that frame. So, is there any way of marking the
  18921. invisible text so that you can cut it or copy it? The answer is that you
  18922. simply use <ctrl-down> to move the cursor to the (invisible) bottom of
  18923. the text the click <adjust> to indicate the upper limit of the area to
  18924. be marked. Ed.
  18925. 4.9
  18926. •   Handy hint − If you use the ‘hand’ to move up or down through a long
  18927. document, you are not limited in your movements to the visible page. In
  18928. other words, if you keep moving the mouse up and up (by repeatedly
  18929. lifting the mouse off the table) or down and down, you just keep moving
  18930. through the document in the desired direction. (This is particularly
  18931. useful if you are a trackerball user!) Ed.
  18932. 4.9
  18933. •   Importing text files into Impression − In the new version of Impres
  18934. sion which CC have just sent me (version 2.11), I have discovered an
  18935. exciting new concept in the Archimedes world − “the Return Stripper”!!
  18936. 4.9
  18937. In the Extensions directory is a new loader module called “LoadReturn”
  18938. which at last seems to deal satisfactorily with the importing of text
  18939. files. Using this, I no longer have to load the file into !Edit then
  18940. change linefeeds into carriage returns before importing. Nor do I have
  18941. to suffer fixed line lengths in the imported text.
  18942. 4.9
  18943. However, I do have two quibbles (some people are never satisfied!):
  18944. 4.9
  18945. Double carriage returns are reduced to single returns, so spaces between
  18946. paragraphs are eliminated (unless you change the style so that it leaves
  18947. such a space − which I think is good practice. Ed). I feel it would be
  18948. helpful to be able to set a “preference” to decide whether or not double
  18949. returns are preserved.
  18950. 4.9
  18951. Importing a text file now involves a somewhat tiresome sequence of
  18952. message windows whereby I am asked to accept or reject each of the
  18953. available loader modules in turn. I feel it would be helpful to be able
  18954. to use the “preference” facility either to define which loader is used
  18955. for which filetype or, at the very least, to determine the order in
  18956. which the various loader options are offered to me. Hugh Eagle.
  18957. 4.9
  18958. (All I did was to put the LoadReturn extension into the Auto directory
  18959. in the Impression directory and now when I want files stripping, I use
  18960. !Settype (Shareware 19 or 23) to change them to Acorn data file type
  18961. (&FFD) and they are stripped automatically. Ed.)
  18962. 4.9
  18963. •   Labels & Tickets − Another way of doing tickets and labels is to
  18964. define a new master page which is the right size for what you want to
  18965. create (pretty radical, eh?). “Fit lots” still works, giving you
  18966. multiple tickets per sheet, but you’re not restricted to 1% size
  18967. increments which can cause you to miss the boundaries on sticky labels,
  18968. especially where there are three or four across the page width.
  18969. (Brilliant! Why didn’t I think of that? Ed. − see below.)
  18970. 4.9
  18971. A similar technique works for cassette inlays. One way is to define a
  18972. single master page 101mm deep and 288mm wide, divided into columns of
  18973. 16, 12, 65, 65, 65 and 65mm; this format will fit two inlays to an A4
  18974. page (assuming zero border width, which will vary between printers), but
  18975. you need to fiddle around with !FontDraw and !Draw (Or use Draw1½ − see
  18976. below. Ed) to get text on the spine of the cassette. Starting with a
  18977. page 288mm deep and 101mm wide gives you the spine text a sensible way
  18978. round, but the four “body” pages are then landscape, which you may not
  18979. want.
  18980. 4.9
  18981. Another way is to split the inlay into two chapters; the spine has a
  18982. 101mm wide, 28mm high master page, and the body pages are 65mm by 101mm,
  18983. or vice versa if you want landscape. Then you need to do a bit of
  18984. cutting and pasting by hand, as Impression won’t print individual pages
  18985. sideways. This is the technique I ended up by using, printing at 141%
  18986. then reducing the pasted-up result from two up on A3 back down by 70% to
  18987. A4, thus enhancing the graphics halftones from 37.5 dpi to 53.6 dpi.
  18988. I’ve included an example ... (Which we have put on the Monthly Program
  18989. Disc. Ed) Jonathan Oakley, Cambridge.
  18990. 4.9
  18991. •   Labels & tickets − Ed’s version − I have played a bit with Jonathan’s
  18992. ideas and developed them a little. I tried to create some labels (like
  18993. the ones on our Shareware Discs etc which come as 24 to an A4 page) and
  18994. found that his method worked very well. I created a master page that was
  18995. 70mm x 37.125mm (which is 210mm divided by 3 horizontally and 297mm
  18996. divided by 8 vertically). I set a border 3mm wide on all four sides
  18997. because the Laser Direct HiRes can print up to about 2.5mm of the edge
  18998. of the page and I wanted to have a simple line border around my labels.
  18999. I put all my text on the master page including a page number so that I
  19000. could have a serial number on the labels. I then closed the master page
  19001. and created another 23 pages for my document by using <menu> Edit −
  19002. Insert new page. I clicked 22 times with <adjust> so that the menu
  19003. stayed on screen and once with <select>. I then pressed <print> and
  19004. clicked on “Fit lots” and then “Setup...” and then “Ignore page border”.
  19005. The printout which appeared was almost right but was 1mm too far to the
  19006. right, 1mm too low at the top and the last label was even lower. (Thinks
  19007. hard.... tries various things and then....) The printout was slightly
  19008. too long so I created a slightly shorter master page − 70mm x 37.11mm. I
  19009. tried to see if there was any adjustment on the laser printer but
  19010. couldn’t find any so I went to the (new, shorter) master page, clicked
  19011. on the frame and pressed <ctrl-F10> to alter the frame. In the position
  19012. section, I simply increased X from 5 to 6 and reduced Y from 5 to 4 in
  19013. order to move the text on the page 1 mm right and 1 mm up. Bingo! Every
  19014. border on every label was almost exactly 5mm.
  19015. 4.9
  19016. I also had a quick try with Jonathan’s cassette inlay printing and it is
  19017. really very easy with his first method − I cheated though by using
  19018. Draw1½ (Shareware 34). For the spine, all you do is create a new Draw1½
  19019. document, type in the text you want, change it to whatever font you are
  19020. using, press <menu> − Special − Text to path and then <menu> − Save −
  19021. Selection and drop the Draw file produced into the relevant graphics
  19022. frame in your Impression document. Then use <adjust> to drag the picture
  19023. round until it is near enough at right angles to the rest of the text
  19024. (having decided which way you want it to face) and finally press <ctrl-
  19025. F11> (Alter graphic) and set the Angle to exactly 90° or 270°. (If you
  19026. can remember which way round 90° or 270° puts it, then there’s no need
  19027. to swing it round with <adjust>.) Here is a bit of text that I have just
  19028. inserted. It must have taken me all of 45 seconds to create the frame,
  19029. type in the text, convert it and add it in! (Software to enable me to do
  19030. that on the Mac cost me hundreds of pounds a couple of years ago!)
  19031. 4.9
  19032. •   “Running” an Impression document − In Alan Highet’s review of !Menon
  19033. on Shareware 38 (Archive 4.8 page 48) he mentions that it did not work
  19034. well with Impression documents since an attempt to “run” one of these
  19035. caused a second copy of Impression to appear on the icon bar.
  19036. 4.9
  19037. I have observed a similar phenomenon in trying to create a front-end for
  19038. Impression which, amongst other things, opens a template document chosen
  19039. by the user. Simply *Running the document results in the loading of a
  19040. new copy of Impression regardless of whether one is already running.
  19041. 4.9
  19042. So, why is it that double-clicking on an Impression document in a Filer
  19043. window will load it into an existing copy of Impression whereas
  19044. “running” it doesn’t?
  19045. 4.9
  19046. Mark Neves of Computer Concepts’ Technical Support Department has kindly
  19047. explained why this happens and has pointed to a solution.
  19048. 4.9
  19049. The reason is that what happens when you double click on an icon in a
  19050. Filer window is not simply that the document is “run”. First, the Filer
  19051. broadcasts a Message_DataOpen message inviting other applications to
  19052. open the document, and only if this message is returned unacknowledged
  19053. does it instigate a *Run.
  19054. 4.9
  19055. The solution is a fairly simple program on the following lines:
  19056. 4.9
  19057. REM >!RunImage
  19058. 4.9
  19059. TaskName$=“RunImpDoc”
  19060. 4.9
  19061. :
  19062. 4.9
  19063. PROCSetUpWimp
  19064. 4.9
  19065. DocToOpen$=FNReadOSVarVal
  19066. 4.9
  19067. (“Doc$ToOpen”)
  19068. 4.9
  19069. PROCPollLoop
  19070. 4.9
  19071. SYS “Wimp_CloseDown”,Taskid% ,&4B534154
  19072. 4.9
  19073. IF NotAcknowledged% THEN OSCLI(“Run ”+DocToOpen$)
  19074. 4.9
  19075. END
  19076. 4.9
  19077. :
  19078. 4.9
  19079. DEF PROCPollLoop
  19080. 4.9
  19081. LOCAL mask%,quit%
  19082. 4.9
  19083. NotAcknowledged%=FALSE
  19084. 4.9
  19085. PROCSendDataOpenMessage
  19086. 4.9
  19087. mask%=0
  19088. 4.9
  19089. quit%=FALSE
  19090. 4.9
  19091. REPEAT
  19092. 4.9
  19093. SYS “Wimp_Poll”,mask%,block% TO reason%
  19094. 4.9
  19095. CASE reason% OF
  19096. 4.9
  19097. WHEN 17,18 : IF block%!16=4 THEN quit%=TRUE
  19098. 4.9
  19099.  REM Another task (presumably
  19100. 4.9
  19101.  REM Impression) has acknowledged
  19102. 4.9
  19103.  REM our request to load a file.
  19104. 4.9
  19105. WHEN 19  : NotAcknowledged%=TRUE:quit%=TRUE
  19106. 4.9
  19107.  REM Our request has not been acknowledged.
  19108. 4.9
  19109. ENDCASE
  19110. 4.9
  19111. UNTIL quit%
  19112. 4.9
  19113. ENDPROC
  19114. 4.9
  19115. :
  19116. 4.9
  19117. DEF PROCSendDataOpenMessage
  19118. 4.9
  19119. !block%=256
  19120. 4.9
  19121. block%!12=0:block%!16=5:block%!20=0
  19122. 4.9
  19123. block%!28=0:block%!32=0:block%!36=0
  19124. 4.9
  19125. block%!40=&2000
  19126. 4.9
  19127. $(block%+44)=DocToOpen$
  19128. 4.9
  19129. ?(block%+44+LEN(DocToOpen$))=0
  19130. 4.9
  19131. SYS “Wimp_SendMessage”,18,block%,0
  19132. 4.9
  19133. ENDPROC
  19134. 4.9
  19135. :
  19136. 4.9
  19137. DEF PROCSetUpWimp
  19138. 4.9
  19139. DIM block% &1000,errblk% 256
  19140. 4.9
  19141. REM Taskid%=FNWimpInit(200,TaskName$)
  19142. 4.9
  19143. SYS “Wimp_Initialise”,200, &4B534154,TaskName$ TO Version%,Taskid%
  19144. 4.9
  19145. ON ERROR PROCError(TaskName$)
  19146. 4.9
  19147. ENDPROC
  19148. 4.9
  19149. :
  19150. 4.9
  19151. DEF FNReadOSVarVal(varname$)
  19152. 4.9
  19153. LOCAL temp1%,temp2%,length%
  19154. 4.9
  19155. DIM temp1% 100,temp2% 100
  19156. 4.9
  19157. $temp2%=varname$
  19158. 4.9
  19159. SYS “OS_ReadVarVal”,temp2%,temp1%, 100,0,3 TO ,,length%
  19160. 4.9
  19161. temp1%?length%=13
  19162. 4.9
  19163. var$=$temp1%
  19164. 4.9
  19165. =var$
  19166. 4.9
  19167. :
  19168. 4.9
  19169. DEF PROCError(TaskName$)
  19170. 4.9
  19171. !errblk%=ERR
  19172. 4.9
  19173. $(errblk%+4)=REPORT$+“ at line ”+ STR$ERL
  19174. 4.9
  19175. errblk%?(4+LEN$(errblk%+4))=0
  19176. 4.9
  19177. SYS “Wimp_ReportError”,errblk%,1, TaskName$
  19178. 4.9
  19179. SYS “Wimp_CloseDown”,Taskid%, &4B534154:END
  19180. 4.9
  19181. ENDPROC
  19182. 4.9
  19183. To use this program, simply set up the OS variable Doc$ToOpen with the
  19184. full pathname of the document and run the program. Hugh Eagle
  19185. 4.9
  19186. •   Setting a style in an Impression frame − Question: how do I set up a
  19187. blank frame containing a predetermined style (for instance, to hold the
  19188. address of the person I am writing to, where I would like to use a
  19189. different font from the one in the body of the letter)? If I put the
  19190. cursor in the frame, then apply the style, then move the cursor
  19191. elsewhere (or save and reload the document) before bringing it back to
  19192. the address frame, and then start typing, the text comes up in the
  19193. Basestyle.
  19194. 4.9
  19195. Answer: If after applying the style, I type anything (for instance a
  19196. couple of carriage returns) in the address frame then the applied style
  19197. seems to be remembered and the address frame works as intended.
  19198. 4.9
  19199. Caution: if I delete the entire contents of the frame the applied style
  19200. is deleted too. So, if I want to blank the frame for reuse I have to
  19201. remember to leave a carriage return or two to preserve the style. Hugh
  19202. Eagle.
  19203. 4.9
  19204. •   Typesetting − We said we would try to find companies willing to do
  19205. typesetting from Impression output. Here are two that we have found. If
  19206. you discover others, ask them to send us details of their services and
  19207. we will publish them. We are particularly interested in those that will
  19208. take Impression files as such rather than PostScript files on MS-DOS
  19209. discs.
  19210. 4.9
  19211. The Type Station in Cardiff offers a full bureau service for bromide or
  19212. film. You create PostScript files and either send them by post on an MS-
  19213. DOS disc or send them c/o BT using a modem. For details, contact Elgan
  19214. Davis on 0222−229977.
  19215. 4.9
  19216. Focus Print in Aberdeen can do bromides (PMT’s) from your Impression
  19217. files. Phone Alexander Bisset on 0224−592571 ext 211 (or 0224−593956
  19218. evenings).  A
  19219. 4.9
  19220.  
  19221. Hints and Tips
  19222. 4.10
  19223. •   *Count command − In Archive 4.6 p8 the hint about *Count, is only
  19224. partly right. The *Count command only counts data. This means that
  19225. directories indeed don’t contribute, but also that only the amount of
  19226. data in a file is counted. However, all files must be an integer
  19227. multiple of the block-size (1k for D and E format), and for short files
  19228. this makes a huge difference. My 46Mb hard disc has about 8Mb difference
  19229. between space used from *Free and from *Count for these reasons!
  19230. 4.10
  19231. One implication of this is that when you archive a large number of small
  19232. files with !Spark you can save much more disc space than you might
  19233. expect. One thing I would suggest for hard disc users is to copy the
  19234. directory tree using *Copy :4.$ :0 T R, and then archive it, which will
  19235. compress it down to almost nothing. Think of all the time you spend
  19236. setting up the directory structure; this may be more important than
  19237. losing files, most of which you will (should?), after all, have on
  19238. floppies. As an added bonus this also gives you the location of all
  19239. applications, as these are just directories. If (perish the thought) you
  19240. have a disc crash, you can just drag the tree out of the archive and
  19241. onto a new hard disc.  Stephen Burke, Liverpool.
  19242. 4.10
  19243. •   DataLoad problems? − The PRM says that if a DataLoad message isn’t
  19244. acknowledged, the sending task should delete <Wimp$Scrap> and give an
  19245. error. However, I think this is wrong. You aren’t guaranteed that the
  19246. scrap file used is, in fact, <Wimp$Scrap>. One case where this must
  19247. happen is with an application which can both load and save files of the
  19248. same type at the same time; it must not use <Wimp$Scrap> for both, or it
  19249. might get very confused! However, there might be other reasons. I
  19250. therefore think you should remember the name of the file you saved, and
  19251. delete that − you get told that it wasn’t a secure file, so this should
  19252. be safe.  Stephen Burke, Liverpool.
  19253. 4.10
  19254. •   Hard Drive problems − BEWARE!!! If you have a fairly old computer − a
  19255. 310 or a 440 or even a vintage 410/1 or if you are working in a dusty
  19256. environment and you are putting in a new hard drive, check/replace the
  19257. fan filter. Why? Well, drive suppliers tell us that on more than one
  19258. occasion they have had a computer where the fan filter was blocked up
  19259. with dust, the customer has installed a new drive and not changed the
  19260. filter and, as a result of the lack of airflow, the drive has suffered a
  19261. fatal head crash. So, you have been warned. (Fan filters should be
  19262. available “from your local Acorn dealer” or they can be bought from
  19263. N.C.S. as part of an “Annual Service Kit” − including a new pair of
  19264. batteries − priced £3.)
  19265. 4.10
  19266. •   How long is a line? − While editing an old program which I was
  19267. converting from the BBC Master to run on the Archimedes, I came across
  19268. some features of Basic line lengths which may be of interest. The
  19269. program was originally written for the BBC-B with the longest possible
  19270. lines to save space.
  19271. 4.10
  19272. On Page 16 of the ‘Basic User Guide’ issue 1 dated 1988, it says ‘A line
  19273. of Basic can contain up to 238 characters...’ but on page 386 it says
  19274. that ‘As in a Basic program, the length of a line is limited (by the
  19275. Basic Editor) to 251 characters..’. This implies that the system has two
  19276. different ideas of what the maximum line length should be, instead of
  19277. one. Unfortunately, the one it uses seems to depend on what you are
  19278. doing.
  19279. 4.10
  19280. My module ARMBasicEdit (version 1 21 August 87) allows the insertion of
  19281. many more than 238 characters in a line. I can get up to 369 before
  19282. there is a warning bell, but then neither <Escape> nor <Return> nor SAVE
  19283. work until there are only the 251 characters left. Programs containing
  19284. lines of length between 239 and 251 apparently run without problems.
  19285. However, if you try editing the lines with Basic loaded, just using the
  19286. Copy key, you find that there is a warning bell after 239 characters,
  19287. (excluding the line number), not after 251.
  19288. 4.10
  19289. Programs with lines longer than 239 characters can be converted to ASCII
  19290. using *SPOOL. However, when you attempt to read them back into a Basic
  19291. program using *EXEC, the lines are truncated to 239, so that the program
  19292. no longer runs. There is a warning bell but the *EXEC process does not
  19293. stop, so not allowing me to find which lines are at fault. I find this
  19294. very frustrating. The file Btest, on the monthly disc, is an example of
  19295. such a program. The file ‘CHECK240’ is a small program which reads a
  19296. file made using *SPOOL which cannot be successfully read back using
  19297. *EXEC. It lists the line numbers which are too long, allowing me to edit
  19298. them with the Basic Editor.
  19299. 4.10
  19300. CHAIN“Btest” to see that it runs. Then try
  19301. 4.10
  19302. *SPOOL TEMP
  19303. 4.10
  19304. LIST
  19305. 4.10
  19306. *SPOOL
  19307. 4.10
  19308. *EXEC TEMP
  19309. 4.10
  19310. CHAIN “CHECK240”
  19311. 4.10
  19312. and reply “TEMP” at the prompt. Kate Crennell, Didcot.
  19313. 4.10
  19314. •   Printer drivers − Further to recent tips about altering the PrData
  19315. file within the printer driver, you can also alter the title of your
  19316. preferred driver and make it the default driver on loading. For example,
  19317. the amendments to !PrinterDM in Archive 4.8 could be made to read “Star
  19318. LC24-10” by altering the line before the line “printer number:2”. The
  19319. default loading is achieved by amending the line “printer:01” to
  19320. “printer:02”. This line is found towards the end of the data file
  19321. immediately before the line “location:1”. Note that the printer number
  19322. must be padded out with a zero (0). Pressing <select> after loading the
  19323. driver will confirm if your amendments have been correctly made.  Ted
  19324. Lacey, Southampton.
  19325. 4.10
  19326. •   Printing A5 on an A4 printer − If you ask the manufacturers, they say
  19327. it is not possible to put A5 paper through either the Qume (300 d.p.i.)
  19328. or the Canon (600 d.p.i.) Laser Directs − or the LBP4’s for that matter
  19329. − but it is possible. All you need is a pile of A5 sheets of scrap paper
  19330. sellotaped up into a solid block about ½“ thick (or ¾” thick for the
  19331. Canons). You put them at the back of the A4 paper tray and put the A5
  19332. paper, sideways, of course, at the front. The paper usually goes through
  19333. OK but does occasionally stick. All you have to be careful of, presum
  19334. ably, is that you don’t print on the lower half of the (A4) paper that
  19335. is not actually there. Having said that, I have been using A5 paper on
  19336. Qume’s, Canons and Mac Laserwriters for years and have occasionally left
  19337. the “A5” tray in when printing A4 without any obvious damage to the
  19338. printers.
  19339. 4.10
  19340. We can now get hold of spare paper trays for Qume (£66) and Canon LBP4
  19341. (£57) and Canon LBP8 (£54)
  19342. 4.10
  19343. (A possible alternative to the paper is a block of wood the same size
  19344. and thickness but I haven’t actually tried it.)
  19345. 4.10
  19346. •   Psychedelic sound-to-light − Whilst playing a Tracker module, it is
  19347. possible to obtain some interesting effects on your monitor by typing
  19348. the following Basic command:
  19349. 4.10
  19350. SYS “OS_UpdateMEMC”,768,1792
  19351. 4.10
  19352. The screen can be returned to normal with either a MODE command or with:
  19353. 4.10
  19354. SYS “OS_UpdateMEMC”,1536,1792
  19355. 4.10
  19356. Rob Swain, Kent
  19357. 4.10
  19358. •   Render Bender on SCSI hard disc drives revisited − In Archive 3.11 p6,
  19359. Neil Berry explains how to use Render Bender on SCSI hard disc drives
  19360. but leaves us with the problem of how to use *KILLADFS. This can be
  19361. achieved by changing all references made to SWI ADFS_Drives (&40242) to
  19362. SWI SCSI_Drives (&403C6). i.e.
  19363. 4.10
  19364. In the ‘Render’ Basic listing: change the SWI &40242 to &403C6 in line
  19365. 15810
  19366. 4.10
  19367. In ‘Aniroute’ Basic listing: change the SWI &40242 to &403C6 in line
  19368. 6670
  19369. 4.10
  19370. Atle Mjelde Bårdholt, Norway
  19371. 4.10
  19372. •   Running one application inside another − The comment in Archive 4.9
  19373. page 6 seems to need some amplification. As explained on page 11 of the
  19374. May/June 1991 issue of “The Archimedean” from Computer Concepts, if you
  19375. want to run one application from inside the !Run file of another, you
  19376. should first enter the command
  19377. 4.10
  19378. *Desktop Run <sibling task name>
  19379. 4.10
  19380. and then repeat the *Wimpslot command from earlier in the !Run file to
  19381. ensure that there is enough memory available for the main application
  19382. before you run it.
  19383. 4.10
  19384. Thus, for example, to make Impression automatically load a printer
  19385. driver whenever it is run you should edit the !Impress.!Run file by
  19386. inserting two extra lines immediately before the last so that the last
  19387. three lines read:
  19388. 4.10
  19389. Desktop Run [...path...].!PrinterXX
  19390. 4.10
  19391. Wimpslot −min xxxK −max xxxK
  19392. 4.10
  19393. Run “<Impression$Dir>.!RunImage” %*0
  19394. 4.10
  19395. The xxxK in the Wimpslot command should be exactly the same as used
  19396. earlier in the !Run file − the precise amount of memory needed will vary
  19397. from one version of Impression to another. Hugh Eagle, Horsham.
  19398. 4.10
  19399. •   Sound improvements − A much improved sound, which is also more
  19400. controllable, can be obtained using the standard colour monitor supplied
  19401. with the Archimedes. A 3.5mm jack (Archimedes) to phono (monitor) cable
  19402. is required, and the speaker on the Archimedes should be turned off
  19403. using *SPEAKER OFF.  Sean Kelly, London
  19404. 4.10
  19405. •   Sound voice changes − Among the (many) things that annoy me are those
  19406. professional programmers who alter your Sound Voice for their games
  19407. which otherwise claim to be “RISC-OS Compatible”. They return you to the
  19408. desktop with their Sound Modules set up as ChannelVoice 1. Not everyone
  19409. likes the WaveSynth-Beep as default voice, and as for some of the sound
  19410. modules or digitised Voice Modules which are then sounded when an error
  19411. occurs, YUK!
  19412. 4.10
  19413. It is quite a simple matter to find out what ChannelVoice the user has
  19414. set up and the program could very easily, before exiting to the desktop,
  19415. restore it using the following code which is available for all program
  19416. mers to use, professional or amateur (please!).
  19417. 4.10
  19418. REM Find the User’s ChannelVoice 1
  19419. 4.10
  19420. SYS “Sound_AttachVoice”,1,0 to ,user_voice%
  19421. 4.10
  19422.  
  19423. 4.10
  19424. REM Because ChannelVoice 1 now equal to 0, reset
  19425. 4.10
  19426. SYS “Sound_AttachVoice”,1,user_voice%
  19427. 4.10
  19428. REM Rest of program, Wimp Interface, whatever
  19429. 4.10
  19430. *ChannelVoice 1 Totally Fantastic Voice
  19431. 4.10
  19432.  
  19433. 4.10
  19434. REM Program at end, restore user voice
  19435. 4.10
  19436. SYS“Sound_AttachVoice”,1,user_voice%
  19437. 4.10
  19438. David Shepherdson
  19439. 4.10
  19440. •   Toolkit Plus update − Clares’ Toolkit Plus usually produces a ‘Bad
  19441. disc address’ error when you try to edit E format floppy discs. This can
  19442. be rectified by performing the following:
  19443. 4.10
  19444. 1   RMLoad the Toolkit Plus module.
  19445. 4.10
  19446. 2   Type: *Modules <return> and take note of the ‘position’ address of the
  19447. Toolkit Plus module.
  19448. 4.10
  19449. 3   Use *WFIND &EF060240 <return> and ignore the first occurrence (i.e.
  19450. press <ctrl-tab> to go on to the next occurrence).
  19451. 4.10
  19452. 4   Locate the instruction seventeen lines down which reads BCC xxxxx.
  19453. 4.10
  19454. 5   Select ‘word mode’ and zero this instruction.
  19455. 4.10
  19456. You should now be able to edit E format discs.
  19457. 4.10
  19458. S Edwards, Wordsley
  19459. 4.10
  19460. •   Toolkit Plus with SCSI − Clares’ Toolkit Plus provides a disc sector
  19461. editor, which refused to work on my SCSI hard disc. A modified Toolkit
  19462. Plus may be produced by using !Edit on the Toolkit Plus module to
  19463. replace all occurrences of ‘ADFS’ with ‘SCSI’ before saving the module
  19464. with a new name e.g. SCSITools.
  19465. 4.10
  19466. A drawback is that the modified version will not cope with ADFS
  19467. floppies. Changing the module name (e.g. from ‘Toolkit+’ to ‘SCSITools’)
  19468. using !Edit allows the modified and original modules to be present at
  19469. the same time, and changing the disc edit command names allows both ADFS
  19470. and SCSI discs to be edited − for instance, !Edit could be used to
  19471. replace ‘AEDIT’ in Toolkit+ with ‘WEDIT’ in SCSITools.
  19472. 4.10
  19473. Sean Kelly, London
  19474. 4.10
  19475. Impression Hints and Tips
  19476. 4.10
  19477. •   Abbreviations − I use abbreviations quite a lot such as “imp” for
  19478. Impression and just “r” for Archimedes but I often want to say, for
  19479. example “ ...using DrawPlus (Careware 13)...” and although “ca” and “Ca”
  19480. are both set up to expand to “Careware”, using “(ca” doesn’t work. There
  19481. is no easy way round it as far as I know − you just have to put “(ca”
  19482. into the abbreviations dictionary to expand to “(Careware”.
  19483. 4.10
  19484. •   Bullets − We’ve mentioned that <ctrl-shift-H> produces a bullet but
  19485. since <backspace> (immediately below <F12> and above <\>) produces the
  19486. same ASCII code as <ctrl-H>, you will find that <shift-backspace>
  19487. produces a bullet. Touch typists may well find it somewhat more natural
  19488. than <ctrl-shift-H>.
  19489. 4.10
  19490. •   Creating tables − The release notes issued with Impression II describe
  19491. the new features of version 2.12 but they do less than justice to one of
  19492. those features, namely the capacity to create tables. It is possible to
  19493. vary the width of individual columns and individual rows in a table as
  19494. well as the thickness of the vertical and horizontal lines which form
  19495. the table.
  19496. 4.10
  19497. In addition, the many editing facilities of Impression can be used to
  19498. modify text which has been entered into the table so that the style and
  19499. size of the characters in any “cell” of the table can be varied as
  19500. desired.
  19501. 4.10
  19502. Moreover, in the manner usual with Impression II, another frame can be
  19503. superimposed on any selected part of the table with the effect that
  19504. lines of the table can be covered and will “disappear” permitting text
  19505. of any size and nature to be introduced and adjusted to appear to be a
  19506. part of the structure of the table.
  19507. 4.10
  19508. In addition to text, any of the superimposed frames can be made graphics
  19509. frames permitting illustrations to be introduced. You can use left hand
  19510. tabulation in the some columns, right hand tabulation in others and
  19511. decimal point tabulation in others.
  19512. 4.10
  19513. Practical matters: First construct the empty table. Then determine which
  19514. cells will be visible in the completed table and enter text into those
  19515. cells, Finally, superimpose other frames as required. Proceeding in this
  19516. order prevents interference with tabulation.
  19517. 4.10
  19518. The usual procedure will be to construct a table of this kind within a
  19519. frame of its own so that it can be moved as a whole to any desired
  19520. position within the document of which it will form a part. Therefore, on
  19521. completion of the table, the various frames of which it is composed
  19522. should be Grouped so that the table occupies a single frame. George
  19523. Foot, Oxted.  A
  19524. 4.10
  19525.  
  19526. 4.10
  19527.  
  19528. 4.10
  19529.  
  19530. 4.10
  19531. Oak
  19532. 4.10
  19533. From 4.9 page 12
  19534. 4.10
  19535.  
  19536. 4.10
  19537. Lindis International
  19538. 4.10
  19539. From 4.8 page 16
  19540. 4.10
  19541.  
  19542. 4.10
  19543. Computer Concepts
  19544. 4.10
  19545. New artwork
  19546. 4.10
  19547. Coming direct to you, hopefully!
  19548. 4.10
  19549. If not, use old one.
  19550. 4.10
  19551.  
  19552. 4.10
  19553. Computer Concepts
  19554. 4.10
  19555. New artwork
  19556. 4.10
  19557. Coming direct to you, hopefully!
  19558. 4.10
  19559. If not, use old one.
  19560. 4.10
  19561.  
  19562. 4.10
  19563. Graphics Galore on the Cheap!
  19564. 4.10
  19565. Tord Eriksson
  19566. 4.10
  19567. Reading with amazement about the latest version of Ventura Publisher Mac
  19568. that costs a cool £695 (exclusive VAT!) and so-called ‘budget’ DTP
  19569. programs for IBMs weighing in at £70 to £160, I wonder if we Archimedes
  19570. users really know how fortunate we are when it comes to good, cheap
  19571. software.
  19572. 4.10
  19573. The “budget” DTP programs for IBMs can’t even word-process − you have to
  19574. use a separate editor, just as you have to do if you do some DTP with
  19575. !Draw....
  19576. 4.10
  19577. Of course, the latest version of Ventura Publisher Mac can print fonts
  19578. in 23½ size instead of just 23 or 24 point size − a revolution no doubt
  19579. but one that almost all DTP and word-processors for our Archimedes
  19580. machines manage easily!
  19581. 4.10
  19582. Archimedes − no master of colours!
  19583. 4.10
  19584. There is a difference between modern IBMs and Mac II’s that puts all
  19585. Acorn computers at a disadvantage, even if it was once hailed as an
  19586. advance over said computers: Colours!
  19587. 4.10
  19588. In terms of colour, both Mac II computers and IBMs with VGA are better
  19589. than Archimedes and the sky is the limit as there are hundreds of
  19590. graphics cards that can be bought that improve things further − 24-bit
  19591. colours are available.
  19592. 4.10
  19593. RISC-OS has an upper limit of 8 bits per pixel, 256 colours − 24 bits
  19594. per pixel gives 16,777,216 different colours, quite a lot more!.
  19595. 4.10
  19596. For the Archimedes range, the limitations are built-in, through RISC-OS
  19597. and the fixed hardware. (There are some improvements possible with
  19598. hardware add-ons, but nothing major).
  19599. 4.10
  19600. Serious DTP is black & white!
  19601. 4.10
  19602. Fortunately, colour printers are very rare in everyday printing, mainly
  19603. due to the fact that such printers are very costly and/or requires
  19604. skilled staff to attend to them.
  19605. 4.10
  19606. So, for practical purposes, DTP will continue to be a mainly black &
  19607. white affair, maybe with some colour thrown in for good measure on
  19608. covers etc.
  19609. 4.10
  19610. The woes of illustrating....
  19611. 4.10
  19612. Being a former technical illustrator, I am painfully aware of the amount
  19613. of work needed to set text in a circular fashion as on a coin or an
  19614. official seal or make the logo on a fluttering flag look like the real
  19615. thing. Hours and hours of work, or in the case of the flag, take a photo
  19616. of the real thing and trace that with tracing paper....
  19617. 4.10
  19618. If the logo is new, you can’t print it first on a flag, so you try to
  19619. make do with crinkling a piece of paper upon which you put your text or
  19620. logo and take a photo of that....
  19621. 4.10
  19622. All this is now of the past, as long as your logo or text can be
  19623. transformed into a !Draw file.
  19624. 4.10
  19625. First − !FontFX
  19626. 4.10
  19627. Let us try an example: There used to be an oil company around this part
  19628. of the world called Caltex. Let us say we are going to do a drawing with
  19629. a flag fluttering with that name on it.
  19630. 4.10
  19631. First we have the text, set in Pembroke:
  19632. 4.10
  19633. To make it more interesting let’s add a shadow, with the shadow in the
  19634. north-east, and make the text itself a black outline filled with a light
  19635. grey and behind it, the dark grey shadow:
  19636. 4.10
  19637.  
  19638. 4.10
  19639.  
  19640. 4.10
  19641.  
  19642. 4.10
  19643. Both these operations are very easy to do with !FontFX as you just click
  19644. on the buttons needed, no previous know-how needed!
  19645. 4.10
  19646. To make this flutter we have to use a couple of other utilities:
  19647. !DrawPlus (or !Draw) and DrawBender.
  19648. 4.10
  19649. Warped universe
  19650. 4.10
  19651. A normal picture is plotted in our brain according to the angle we watch
  19652. the picture from: If we fly above a square field the corners are right
  19653. angle corners (a so-called bird’s-eye view) and if we stand just outside
  19654. the field the angles get very odd indeed − their sum is still 360,
  19655. though!
  19656. 4.10
  19657. If a square is wrapped around a cylinder things get much more compli
  19658. cated, especially when seen at an angle − an illustrator’s nightmare!
  19659. Not even all CAD programs seems to be able to solve it correctly....
  19660. 4.10
  19661. Secondly − make a mould!
  19662. 4.10
  19663. DrawBender manipulates !Draw files by plotting them inside each other:
  19664. Any text that is going to be manipulated has to be in !Draw format. The
  19665. coordinate system “inside” a square is still square but inside a circle
  19666. it takes on the characteristics of a text printed on a balloon like
  19667. this:
  19668. 4.10
  19669.  
  19670. 4.10
  19671.  
  19672. 4.10
  19673.  
  19674. 4.10
  19675.  
  19676. 4.10
  19677. The first (the circle) is called the mould and the second (the square
  19678. inside a frame) is called the object.
  19679. 4.10
  19680. Due to the way DrawBender works, a real circle couldn’t be used − it had
  19681. to be substituted it with a 32-sided polygon and it had to be flipped
  19682. over because paths have to be clockwise to work as moulds in DrawBender
  19683. whereas !Draw and !DrawPlus draw counter-clockwise − it’s all very well
  19684. explained in the DrawBender manual!
  19685. 4.10
  19686. Wonderful results!
  19687. 4.10
  19688. Taking the text, we put it on rectangular background, to make the
  19689. outline of the flag as the outline of the mould doesn’t show up on the
  19690. finished result:
  19691. 4.10
  19692. This is now our object! A “flapping flag” is our mould:
  19693. 4.10
  19694. Conclusion
  19695. 4.10
  19696. As the end result shows the effect is quite stunning. This amount of
  19697. manipulation is available to IBM users of course − I could recommend
  19698. Express Publisher (£159.95) as the “low-cost” alternative!
  19699. 4.10
  19700. For Archimedes users the cost is just £21, including two manuals and
  19701. lots of sample files (available from Ian Copestake Software).  A
  19702. 4.10
  19703.  
  19704. Hints and Tips
  19705. 4.11
  19706. •   Running applications − Carrying on from Hugh Eagle’s tip about running
  19707. one application from inside another, on a A310, if you only have
  19708. floppies and have, say, a DTP !Impression disc with !PrinterDM ,
  19709. !FontDraw and !DrawPlus all at the same level, you can tailor the !run
  19710. file of, say, !Impression to load other applications at the same
  19711. directory level, dependant on memory, by using the command
  19712. 4.11
  19713. *desktop <obey$dir>.^.!second_
  19714. 4.11
  19715. application_name
  19716. 4.11
  19717. the <obey$dir> sets the filing system into the first selected appli
  19718. cation (!Impression.) and the .^. takes it back up to the level you were
  19719. at first! The next application then loads on the desktop ready for use.
  19720. Repeat the line with “!third_ application_name” and so on.  Ned Abell
  19721. 4.11
  19722. •   Colour separations − Last month, there was a question from John
  19723. Oversby about a colour separation program for !Draw or sprite files. One
  19724. solution is to use DrawPlus (Careware 13), actually drawing different
  19725. colours on different “layers”. Another possible solution revolves around
  19726. the Impression Business Supplement which provides colour separation for
  19727. PostScript files. However, the ideal solution is a simple “filter”
  19728. program which takes in a !Draw file and selects all objects of a
  19729. particular colour and puts them into a new !Draw file. Does anyone know
  19730. of such a program? I would be interested in using this for producing
  19731. double-sided printed circuit boards using !Draw. It is easy to write a
  19732. Basic program to do this starting from the !Draw format as specified in
  19733. the PRM − I could even do this myself − but making it RISC-OS-ified is
  19734. another matter. Brian Cowan
  19735. 4.11
  19736. Impression H & T
  19737. 4.11
  19738. •   Business Supplement − Like many of you I was excited about the release
  19739. of more software for serious users of Impression II. The addition of the
  19740. mail-merge facility is particularly useful. However, I have noticed that
  19741. it suffers from a problem that early versions of Impression had. Namely,
  19742. using the * print facility causes the print to crash after the first
  19743. document with “Invalid number of output bits” in multiscan mode. The
  19744. problem is resolved by switching to mode 15. Also, beware of forgetting
  19745. to load your RISC-OS printer driver before requesting a print from
  19746. !Importer. This is because it won’t warn you that you will receive a
  19747. draft copy − and worse, you have to close everything down and start
  19748. again.
  19749. 4.11
  19750. Another word of warning to those of you planning to buy the supplement
  19751. thinking that the WordStar loader will solve all your translation
  19752. problems − it doesn’t (not on my version, anyway)! If I had thought
  19753. about it, the result one gets is obvious. All the ASCII spaces that mess
  19754. up justification are stripped − but this is at the cost of losing a
  19755. space at the end of a line. Consequently, numerous words are joined
  19756. together. If you are prepared to use the spellchecker to separate the
  19757. words again the utility is fine and it does stop those messy spaces
  19758. appearing whenever you make an alteration to the text. However, it’s
  19759. still hard work!  John Brocks
  19760. 4.11
  19761. •   Font usage − Is there a product or would someone like to write an
  19762. application which takes an Impression document and tells you what
  19763. fonts are required? The reason for this is that some PD software
  19764. includes documentation prepared in Impression format. This is a great
  19765. idea but sometimes strange fonts are used. If you are using Adrian
  19766. Look’s !FontDir (Shareware 36) then you need to know which fonts are
  19767. needed before Impression is booted up. Brian Cowan
  19768. 4.11
  19769. That should be easy enough. If you want to do it manually, you can save
  19770. the text of an Impression document with styles and look at it in Edit.
  19771. You can search for “font  ” and look through all the references to
  19772. particular fonts as they occur in the style definitions and as effects
  19773. within the text. Mind you, that will give you the fonts that appear
  19774. within the style definitions regardless of whether those styles have
  19775. actually been used in the document. Anyone want to have a go at writing
  19776. such an application?
  19777. 4.11
  19778. Is anyone interested in / able to convert between the Impression
  19779. Document Description File format and TeX? I think it should be possible
  19780. since both contain the same sort of information. This would be useful
  19781. for scientific applications where many journals accept material on disc
  19782. or by wire in TeX format. Brian Cowan
  19783. 4.11
  19784. •   Labels and tickets − When I was printing video cassette labels onto a
  19785. roll of adhesive labels they were printing too far to the right. I
  19786. failed to understand that !Impression is smart and says, “right, you are
  19787. printing a document 165mm wide. I will print it 82.5mm to the right and
  19788. left of the centre line of the printer”. I have a mark on the case of my
  19789. Citizen 120D printer to align the left hand side of A4 paper, when
  19790. putting in individual sheets but I can’t centre different rolls of
  19791. labels accurately without putting several marks on the case which would
  19792. be confusing so I got round the problem by designing new master pages
  19793. that are always A4 width (210 mm) and creating a frame on that page that
  19794. is the right width for the labels and off centred to the left. I
  19795. continue to put the label roll edge to the mark.
  19796. 4.11
  19797. I then had to change the !Printer DM page size to one 102mm by 210mm
  19798. wide which gives me the the right “greying” on the screen as I have
  19799. “Preferences”, “Show page borders”, switched on. This prints two perfect
  19800. sets of labels but I still get unwanted form feeds at the end of the
  19801. page! (Example supplied on monthly program disc.)  Ned Abell
  19802. 4.11
  19803. •   Retaining styles − Hugh Eagles’s question about setting a style in a
  19804. blank Impression frame (Archive 4.9 p11) can be answered in terms of
  19805. ‘Place holding’ in the same way as my hint on re-aligning lines starting
  19806. with a different font (Archive 4.8 page 11). Just set the style and type
  19807. a ‘null’ character in the frame (i.e. one which is not defined in the
  19808. font you are using) by using Alt and the keypad numbers. (EFF fonts are
  19809. rapidly filling up, making null characters harder to find, but try 136
  19810. or 139.) Bruce Goatly
  19811. 4.11
  19812. •   Un-deleting − As you probably know, you can highlight a passage, type
  19813. over it and thereby replace it. Well, if you have second thoughts
  19814. immediately afterwards, you can restore the original by highlighting the
  19815. replacement passage and typing <ctrl-V>. This deletes the replacement
  19816. altogether rather than cutting it to the clipboard; the clipboard still
  19817. contains the original version. Bruce Goatly  A
  19818. 4.11
  19819.  
  19820. 4.11
  19821. Help!!!!
  19822. 4.11
  19823. •   Mac Scanner − Does anybody know of software to use a Mac AppleScanner
  19824. with a SCSI interface on an Archimedes? Brian Cowan
  19825. 4.11
  19826. •   Podule expansion − Does anyone know of an expansion box which allows
  19827. more than 4 podules to be attached to an Archimedes computer at any one
  19828. time? A G Duckett, Telford.  A
  19829. 4.11
  19830.  
  19831. 4.11
  19832.  
  19833.  
  19834.  
  19835. ProTips
  19836. 4.11
  19837. Peter Jennings
  19838. 4.11
  19839. This is a column of hints and tips for users of Protext 5. It is not
  19840. intended as a regular feature to rival PipeLine as there are probably
  19841. not yet enough users of the Archimedes version of Protext to support it.
  19842. Arnor have promised to keep me informed of developments to Protext,
  19843. particularly the eagerly awaited RISC-OS version, and I will pass the
  19844. details on in future issues of Archive, along with any hints or tips
  19845. that pioneering users of this exciting new word processor may care to
  19846. send by way of Paul Beverley.
  19847. 4.11
  19848. In the meantime, here are a few hints of my own plus advice on an
  19849. irritating bug that has emerged from the software since I completed the
  19850. review in last month’s Archive.
  19851. 4.11
  19852. First the bug, which has suddenly appeared after lying dormant during
  19853. three months’ constant use of Protext. It shows itself during attempts
  19854. to save a file, either manually or automatically, with two messages, one
  19855. saying that the file “PROTEXT!X” or “PROTEXT!T” cannot be found and the
  19856. other: “Error creating file”. More alarmingly, the text sometimes
  19857. disappears from the screen. Any further attempt to save brings a “File
  19858. open” message. My description of this as “irritating” may seem rather
  19859. inadequate but, in fact, it is not disastrous and can be dealt with
  19860. quite easily. When the message about PROTEXT!X appears just type “close”
  19861. at the command line, followed by “s” (for save). Your original file name
  19862. will then be offered and pressing <return> will duly save it.
  19863. 4.11
  19864. Arnor have not given me any fix for this fault but have just said,
  19865. rather uncertainly: “We think we may have solved the problem in the next
  19866. version of Protext.” Let us hope they have.
  19867. 4.11
  19868. Omissions
  19869. 4.11
  19870. Two strange omissions from Protext, so far, are a function key strip and
  19871. an icon. If you dislike the boring default applications icon, or the
  19872. blank squares representing files, you can always design your own icons,
  19873. using !Paint. First create a directory for them, called !Sprites, inside
  19874. the main !Protext directory. Then design an application icon named
  19875. !protext and a files icon called file_cdf, with additional small
  19876. versions if wanted. Finally, add an initial line to the !Boot file:
  19877. “IconSprites <Obey$Dir>.!Sprites”. If you are not sure how to create
  19878. icons there are instructions in the chapter on “Paint” in the User Guide
  19879. or you can find a set of ready-made sprites in a !Sprites directory on
  19880. this month’s program disc. You can just copy !Sprites into the !Protext
  19881. directory but do not forget to add the IconSprites line to the !Boot
  19882. file. The ready-mades have a simple “P5” design, with a border round the
  19883. files sprite, but are colourful enough to be readily identified in a
  19884. desktop directory.
  19885. 4.11
  19886. A do-it-yourself function key strip is also easily made, either using a
  19887. program which provides a template or by starting from scratch with
  19888. Protext’s excellent line drawing facility. One made this way is also on
  19889. this month’s disc. It has to be printed in two sections, one below the
  19890. other, as Protext can not print down the paper in landscape form. Anyone
  19891. who has a wide-carriage printer can copy the second section beside the
  19892. first by using the Protext “box” marking facility.
  19893. 4.11
  19894. Line drawing
  19895. 4.11
  19896. When making a grid by line drawing, the natural way is to begin by
  19897. drawing either the horizontal lines or the outside box shape and then
  19898. adding the verticals afterwards. If you do it this way, however, you may
  19899. find the vertical lines going slightly beyond the outside boundaries. To
  19900. correct this, draw the uprights with the up or down arrow key, as
  19901. normal, but use one of the horizontal, left or right, arrow keys for the
  19902. final stroke before reaching the horizontal boundary. The line will then
  19903. turn the corner to make a neat join instead of an intersection. Corners
  19904. are drawn in the same way.
  19905. 4.11
  19906. Although Protext comes with 48 printer drivers, there isn’t one for the
  19907. very popular Panasonic KX-P1081 printer, which I use. The FX80 printer
  19908. driver is suitable for it but will not print line drawings. So the
  19909. function key strip needs to have the IBM9 printer driver loaded and one
  19910. of the printer’s tiny DIP switches changed. These can be found below and
  19911. immediately to the right of the printer head when it is in its “home”
  19912. position on the extreme left. Lift up the thin strip of clear plastic
  19913. covering them and use a small screwdriver or similar implement to push
  19914. switch number one, on the extreme left, down (for off). The other
  19915. switches can probably be left as set but if you still have a problem try
  19916. putting either switch six or seven up (for on).
  19917. 4.11
  19918. Hopefully, Arnor will produce a key strip and their own official icons
  19919. when the RISC-OS version of Protext finally appears.
  19920. 4.11
  19921. Obvious when you know
  19922. 4.11
  19923. Finally, a few brief tips of the “it’s obvious when you know” variety.
  19924. You can find your version number of Protext by pressing <escape> and
  19925. reading the bar above the command line. This also shows you the current
  19926. directory and the selected printer driver.
  19927. 4.11
  19928. The “Swap” line at the top of the colour configuration menu puzzled me
  19929. for a time as it does not seem to be explained anywhere. I eventually
  19930. discovered that selecting it and pressing <return> shows the colours
  19931. used for alternate documents when more than one is loaded.
  19932. 4.11
  19933. It is a good idea to lock the files of templates, such as letter
  19934. headings, to prevent them being overwritten if a document you are
  19935. working on is automatically saved with the template’s name. If, for any
  19936. reason, you cannot lock the template, load it with the command “m” for
  19937. merge instead of “l” for load. The bar at the top of the screen will
  19938. show “No file” and you will be asked for a name before the document is
  19939. saved.  A
  19940. 4.11
  19941.  
  19942. Hints and Tips
  19943. 4.12
  19944. •   Basic line lengths revisited (Archive 4.10 p7) − The Basic line input
  19945. buffer is 238 characters and so this is the most you can type in from
  19946. the Basic prompt. Once entered, this line is tokenised before being
  19947. stored as part of a program. Most of the keywords are reduced to only
  19948. one byte, so the line ends up taking up much less room in a program. The
  19949. maximum length for a line in a program is 255 bytes, but four of these
  19950. bytes have special purposes (one is a line terminator, one the line
  19951. length and two the line number). This leaves 251 bytes for the rest of
  19952. the line. So what’s the point in allowing bigger lines in the program if
  19953. you can’t type them in? Well, you can by being devious. Try typing the
  19954. following at the Basic prompt:
  19955. 4.12
  19956. 10E.:E.:E.: etc
  19957. 4.12
  19958. until you hit the line limit and then press Return. Listing your program
  19959. now should reveal:
  19960. 4.12
  19961. 10ENDPROC:ENDPROC:ENDPROC: etc
  19962. 4.12
  19963. up to a length of about 790 characters! This line is perfectly valid and
  19964. would run OK (although I can’t think of a program where 79 ENDPROCs in a
  19965. row would be useful!) but is much too long to edit at the Basic prompt
  19966. or in the Basic Editor. It wouldn’t be sensible for the Basic Editor to
  19967. limit you to 251 characters since, once tokenised, your line would be
  19968. much shorter, so it allows you to type up to 369 characters hoping that
  19969. tokenising will bring it back to 251. It objects if you try to type in
  19970. more than 369 characters; it also objects if you type a shorter line
  19971. which would be longer than 251 characters once tokenised (try REM
  19972. followed by 300 letters). As for solving the problem, if you have a copy
  19973. of Twin, you could try loading your Basic program into it. Twin has no
  19974. line length limit and will cope with anything. Returning to Basic will
  19975. always work provided the resulting tokenised lines would be no longer
  19976. than 251 characters. Lorcan Mongey
  19977. 4.12
  19978. •   Citizen printer spare parts − You may be interested to know that you
  19979. can get spare parts for Citizen printers from XMA Ltd, Ruddington Lane,
  19980. Wilford, Nottingham, NG11 7EP. (0602 −818222) Rob Brown, Tadworth,
  19981. Surrey.
  19982. 4.12
  19983. •   Fatal error type = 5 − !Edit will report this error if you have too
  19984. many outline fonts in your !Fonts folder. This will prevent you from
  19985. editing any documents within !Edit. The following Basic program will
  19986. solve this problem by hiding the !Fonts folder before running !Edit and
  19987. then restoring it once !Edit has been run.
  19988. 4.12
  19989. 1. Rename the ‘!RunImage’ file inside the ‘!Edit’ folder as ‘EditImage’.
  19990. 4.12
  19991. 2. Type the following program in and then save it as ‘!RunImage’ in the
  19992. ‘!Edit’ folder.
  19993. 4.12
  19994. REM ><Edit$Dir>.!RunImage
  19995. 4.12
  19996. SYS “Wimp_Initialise”,200,&4B534154, “EditStart” TO ,taskid%
  19997. 4.12
  19998. *Set temp <Font$Prefix>
  19999. 4.12
  20000. *UnSet Font$Prefix
  20001. 4.12
  20002. *WimpSlot -min 160k -max 160k
  20003. 4.12
  20004. *WimpSlot -min 160k
  20005. 4.12
  20006. SYS “Wimp_StartTask”,“Run <Edit$Dir> .EditImage ”+FNenv_string
  20007. 4.12
  20008. *Set Font$Prefix <temp>
  20009. 4.12
  20010. *Unset temp
  20011. 4.12
  20012. SYS “Wimp_CloseDown”,,taskid% ,&4B534154
  20013. 4.12
  20014. END
  20015. 4.12
  20016.  
  20017. 4.12
  20018. DEFFNenv_string
  20019. 4.12
  20020. LOCAL env$,x%
  20021. 4.12
  20022. SYS “OS_GetEnv” TO env$
  20023. 4.12
  20024. IF LEN(env$)<6 THEN =“”
  20025. 4.12
  20026. WHILE INSTR(env$,“ ”,x%)>0
  20027. 4.12
  20028. x%=INSTR(env$,“ ”,x%)+1
  20029. 4.12
  20030. ENDWHILE
  20031. 4.12
  20032. =RIGHT$(env$,LEN(env$)-x%+1)
  20033. 4.12
  20034. •    Locating the I/O podule (a SWI number change) − Those writing code
  20035. for the I/O podule for use on different machines should note that Acorn
  20036. made a SWI number change between version 1.04 and 1.06 of the software
  20037. (use *Help Modules to find what version you have). Earlier issues of the
  20038. podule use &4043F for SWI “I/O _Podule_Hardware” whereas the later
  20039. versions use &40500. ARM code assembled on a machine with one version of
  20040. the software will not work on another machine with a different version
  20041. without changing this SWI number. Richard House, Surrey.
  20042. 4.12
  20043. •   PC screen fonts − If you are not overly fond of the chunky IBM
  20044. character set in the PC emulator, the following few lines of Basic will
  20045. modify the emulator ROM file with the BBC font of your choice.
  20046. 4.12
  20047. REM >PCFONT
  20048. 4.12
  20049. REM Merge BBC FONT file into !PC ROM file
  20050. 4.12
  20051. REM N.B. *** COPY ORIGINAL ROM FILE BEFORE RUNNING THIS ***
  20052. 4.12
  20053. :
  20054. 4.12
  20055. DIM rom% &2000 : offset%=&166E
  20056. 4.12
  20057. R$=“:4.$.!PC.ROM”
  20058. 4.12
  20059. OSCLI(“Load ”+R$+“ ”+STR$~rom%)
  20060. 4.12
  20061. A%=OPENIN(R$) : r1%=EXT#A% : CLOSE#A%
  20062. 4.12
  20063. :
  20064. 4.12
  20065. F%=OPENIN(“4:.BBCFONTS.NEWFONT”) : REM file of type &FF7
  20066. 4.12
  20067. REPEAT
  20068. 4.12
  20069. A%=BGET#F%
  20070. 4.12
  20071. IF A%<>23 THEN PRINT “This is not a BBC font file!” : END
  20072. 4.12
  20073. C%=BGET%F%
  20074. 4.12
  20075. FOR I%=0 TO 7
  20076. 4.12
  20077. rom%?(offset%+((C%+128) MOD 256) *8+ I%)=BGET#F%
  20078. 4.12
  20079. NEXT I%
  20080. 4.12
  20081. UNTIL EOF#F%
  20082. 4.12
  20083. CLOSE#F%
  20084. 4.12
  20085. :
  20086. 4.12
  20087. OSCLI(“Save ”+R$+“ ”STR$~rom%+ “ + ”+STR$~r1%)
  20088. 4.12
  20089. END
  20090. 4.12
  20091. This program has been used successfully on the ROM files supplied with
  20092. version 1.33 and the latest 1.60 (large and small) − each version stores
  20093. its VDU 23 character definitions from offset &166E onwards. Pete Bready,
  20094. Glasgow.
  20095. 4.12
  20096. •   Impression Junior styles? − In the June 1991 edition of Archive, it
  20097. was pointed out that Impression Junior does not have styles. Although it
  20098. does not have styles, it does have rulers. These are intended to define
  20099. margins and tab-stops, but they can be used for other things.
  20100. 4.12
  20101. If you save a text story with effects, you will see the definition of a
  20102. ruler, which looks like:
  20103. 4.12
  20104.  
  20105. 4.12
  20106. There will also be the definition of the BaseStyle, which contains a
  20107. number of additional commands. By copying some of these to the ruler
  20108. definition, you can create the equivalent of a style. As an example, a
  20109. ‘style’ that changes the font of the text subject to the ruler to greek,
  20110. could be, for example:
  20111. 4.12
  20112.  
  20113. 4.12
  20114. As Impression Junior does not have the facility to create rulers with
  20115. these extensions, they must be written using an ordinary text editor
  20116. (such as !Edit) and imported into Impression where they become rulers.
  20117. 4.12
  20118. The commands that I know work are:
  20119. 4.12
  20120. font <font name>   − e.g. Greek, Trinity.Medium, etc
  20121. 4.12
  20122. fontsize <size>pt   − 8 to 20 is reasonable
  20123. 4.12
  20124. fontaspect <size>%      −
  20125. 100 normal, 200 stretches to twice size
  20126. 4.12
  20127. fontcolour rgb = (<n>,<n>,<n>)  − n is from 0 to 1 or 0 to 100 (both
  20128. appear to work)
  20129. 4.12
  20130. linecolour rgb = (<n>,<n>,<n>)  − as above
  20131. 4.12
  20132. justify [left, right, centre, full]  − full is to both margins
  20133. 4.12
  20134. underline [0,1]      − other
  20135. values also work but give strange underline
  20136. 4.12
  20137. strikeout [on, off]      −
  20138. writes ‘-’ over characters
  20139. 4.12
  20140. script [off, sub, super]      −
  20141. sub and super-scripts
  20142. 4.12
  20143. leader “<text>”      − overwrites
  20144. tab character
  20145. 4.12
  20146. By using these additional commands, it is possible to generate some very
  20147. useful rulers.
  20148. 4.12
  20149. Simon Callan, Borehamwood.  A
  20150. 4.12
  20151.    
  20152. Hints and Tips
  20153. 5.1
  20154. •   FileUtils − Anyone using Ben Summers’ FileUtils should note that
  20155. <ctrl-shift-F2>, <ctrl-shift-F3> and <ctrl-shift-F4> will still call up
  20156. the FileUtils routines even when, say, working in Impression. This can
  20157. give a nasty shock if you are, for example, trying to insert preset
  20158. styles using <ctrl-shift-F4> and a “change filetype” dialogue window
  20159. pops up. Mike Hobart, Cambridge.
  20160. 5.1
  20161. •   Installing Desktop C − If you have recently upgraded from C to Desktop
  20162. C, you may have a little difficulty installing Desktop C onto your hard
  20163. disc. When you first try to run the ‘Install’ program, it will stop
  20164. abruptly half way through the second of the four discs, with no clues as
  20165. to what has happened. This is because the ‘Install’ program tries to
  20166. create a directory called $.User. Cmodule, which already exists from
  20167. your previous installation of C and so the program crashes. The solution
  20168. is simple, just delete the old $.User.Cmodule directory before attempt
  20169. ing to install Desktop C.   D R Kennard, London.
  20170. 5.1
  20171. •   LBP-4 CaSPL − Switching between Video output (for the CC Hi-Res board)
  20172. and CaSPL output of the LBP-4 doesn’t appear to be documented in the
  20173. manual. Here is how it can be done:
  20174. 5.1
  20175. From Video to CaSPL mode:
  20176. 5.1
  20177. 1.   Hold down “Menu” for 3 seconds until “Mode=Video” is displayed.
  20178. 5.1
  20179. 2.   Tap the “Menu” key once to display “Mode=CaSPL”
  20180. 5.1
  20181. 3.   Tap “Enter”. The LCD will read “01 Ex Exit” then “00 Ready A4”
  20182. 5.1
  20183. 4.   Tap the “Off-line” key to take the machine off-line (if the green
  20184. on-line indicator is lit).
  20185. 5.1
  20186. 5.   Tap “Feeder Select”.
  20187. 5.1
  20188. 6.   Tap “Menu”. The menu as described in the manual is now displayed.
  20189. 5.1
  20190. From CaSPL to Video:
  20191. 5.1
  20192. 1.   Take the printer off-line.
  20193. 5.1
  20194. 2.   Hold down the “Menu” for 3 seconds − “Mode=CaSPL” is displayed.
  20195. 5.1
  20196. 3.   Tap “Menu” again − “Mode=Video” is displayed.
  20197. 5.1
  20198. 4.   Tap “Enter”.
  20199. 5.1
  20200. 5.   You are now back in Video mode.
  20201. 5.1
  20202. Mike, Bainbridge, Derby.
  20203. 5.1
  20204. Impression Hints & Tips
  20205. 5.1
  20206. •   Adding a frame at beginning of a story − It is not immediately obvious
  20207. (well, it wasn’t to me!) how to add extra frames into a story that runs
  20208. through a number of frames. Suppose you have two frames, B and C (I’ll
  20209. get to A in a minute) − perhaps they are two main columns on this page −
  20210. and you want to split column B into two frames leaving a gap in the
  20211. middle. What you do is firstly shorten frame B using the frame handle at
  20212. the middle of the bottom of the frame. Then you use <ctrl-I> and create
  20213. a new frame wherever you want it under frame B (let’s call it frame B2).
  20214. Now click on frame B with <select> and then on frame B2 with <adjust>
  20215. and the text will flow into it so that it runs B−B2−C.
  20216. 5.1
  20217. Now suppose you want the text to start in a frame before frame B. (Let’s
  20218. call it frame A.) The technique is to create the new frame, A, wherever
  20219. you want it using <ctrl-I>. Then click on frame B with <select> and then
  20220. on frame A with <adjust>. The text will now flow into it so that it runs
  20221. B−A−B2−C−etc. (N.B. This won’t work unless frames A and B are on the
  20222. same page because you cannot flow text backwards across a page bound
  20223. ary.) Then click on B and use <ctrl-X> to delete it. The flow is now
  20224. just A−B2−C−etc. Finally, you create a new copy of frame B by using
  20225. <ctrl-V>, click on frame A with <select> and the new B with <adjust> and
  20226. the flow will be A−B−B2−C−etc.
  20227. 5.1
  20228. •   Dual window problems solved? − A few issues ago, I mentioned the
  20229. problem that if you open a second window on a document and then expand
  20230. and contract that window (so that you can alternately use two different
  20231. scale views) each time you shrink view 2 using the icon at the top right
  20232. of the window, it doesn’t stay at the place in the document that you
  20233. have just been working on. It always seemed (in my case) to go back to
  20234. somewhere earlier in the document. No one has offered any solution but
  20235. it seems to me that it goes back to wherever you last added a frame into
  20236. that window. So if you want to “keep your place” in the second window,
  20237. use <ctrl-I> to create a new frame at that place in the document and
  20238. then use <ctrl-X> to delete it again. Crude, but it seems to work. (No,
  20239. it doesn’t, not always. Drat, I thought I had solved it! Come on,
  20240. someone must be able to solve this one − I’ll give a free Archive mug to
  20241. the first person to solve it. Ed.)
  20242. 5.1
  20243. • Equasor and matrices − The biggest drawback Equasor has for me as a
  20244. mathematics teacher is its inability − at least in version 1.00 − to
  20245. handle vectors and matrices.
  20246. 5.1
  20247. There is, however, a way in which a very credible matrix can be created
  20248. − with a small amount of extra work:
  20249. 5.1
  20250. I build the columns as multiple fractions, and then enclose everything
  20251. in brackets; I drop the file into Draw, remove the fraction bars and
  20252. then align the brackets with the numbers.
  20253. 5.1
  20254. Jochen Konietzko, Köln, Germany
  20255. 5.1
  20256. •   Special characters − Now I’m sure you ALL knew this, but I didn’t
  20257. until I read this month’s PipeLine article. The Alt key is extremely
  20258. useful for inserting special characters in the text. I had discovered
  20259. that <Alt-space> (that’s holding the Alt key down and tapping on the
  20260. space bar) gave a ‘hard’ space where you don’t what the words (e.g. the
  20261. halves of a postcode) to be split across the end of one line and the
  20262. beginning of the next, and I had discovered the idea of using Alt
  20263. together with the numbers on the numeric keypad to produce special
  20264. characters, but how about this...
  20265. 5.1
  20266.      a² + b² = c³
  20267. 5.1
  20268. I produced that in seconds without using superscript. The ² is produced
  20269. with <Alt-2> and the ³ with (yes, you’ve guessed) <Alt-3>. In other
  20270. words, you hold down the Alt key, as if it were the shift key, and type
  20271. 2 or 3. Here is a table of the ones I have found but note that this only
  20272. applies to Trinity font which I am using. Other fonts may be different
  20273. but, generally, they tend to stick to using the same symbols for the
  20274. same ASCII numbers which the Alt key produces. The third column is the
  20275. ASCII number produced.
  20276. 5.1
  20277. <Alt-1>   ¹   185
  20278. 5.1
  20279. <Alt-2>   ²   178
  20280. 5.1
  20281. <Alt-3>   ³   179
  20282. 5.1
  20283. <Alt-9>   ±   177
  20284. 5.1
  20285. <Alt-0>   °    176
  20286. 5.1
  20287. <Alt-C>   ¢   162
  20288. 5.1
  20289. <Shift-Alt-C>   ©   169
  20290. 5.1
  20291. <Alt-M>   µ   181
  20292. 5.1
  20293. <Alt-R>   ®   174
  20294. 5.1
  20295. <Alt-S>   §   167
  20296. 5.1
  20297. <Alt-X>   »   187
  20298. 5.1
  20299. <Alt-Y>   ¥   165
  20300. 5.1
  20301. <Alt-Z>   «   171
  20302. 5.1
  20303. <Alt-`>   ¬   172
  20304. 5.1
  20305. (top left key under <esc>)
  20306. 5.1
  20307. <Alt-,>   ×   215
  20308. 5.1
  20309. <Alt-.>   ÷   247
  20310. 5.1
  20311. <Alt-space>      160 (hard space)
  20312. 5.1
  20313. If you have found any that I have missed, perhaps in other fonts, let us
  20314. know. Ed.
  20315. 5.1
  20316. • Spell checking Edit documents − Whenever I typed a longish Edit text
  20317. file, I used to regret the absence of a spell checker. For Impression
  20318. users, this poses no problem:
  20319. 5.1
  20320. Simply drop the Edit file in question into an empty Impression frame,
  20321. have Impression check the spelling, then export the text back into Edit
  20322. by saving just the text story without styles. You can drag the text
  20323. story onto the Edit icon to have another look at it or save it in the
  20324. usual way directly to a disk. The import/export takes just a few
  20325. seconds, so this is nearly as good as a spell checker built into Edit
  20326. itself. Jochen Konietzko, Köln, Germany  A
  20327. 5.1
  20328.  
  20329. 5.1
  20330. Silicon Vision
  20331. 5.1
  20332. New
  20333. 5.1
  20334.  
  20335. 5.1
  20336. Colton
  20337. 5.1
  20338.  
  20339. 5.1
  20340. 4.12 p21
  20341. 5.1
  20342.  
  20343. 5.1
  20344. Matters Arising
  20345. 5.1
  20346. •   Archimedes’ Tutor − Simon Anthony has produced a Beginner’s D.I.Y.
  20347. Introduction to the Archimedes using the !Hyper application on Shareware
  20348. Disc 19. If anyone is interested they should contact him directly at 62
  20349. Rutland Road, West Bridgford, Nottingham, NG2 5DG.
  20350. 5.1
  20351. •   ArmSort − Fast Array Sorts − The author replies... The reviewer
  20352. (Ashley Bowden in Archive 4.12 p53) seems to have created a problem with
  20353. the flag values. The ArmSort documentation DID clearly state that for
  20354. the CALL sort “The parameters must all be variables, but may be of any
  20355. name”. If CALL sort,test%() ,128 is used, then it is Basic that objects
  20356. with “Syntax Error”, ERR=16, because it is a Basic requirement that all
  20357. CALL parameters are variables not constants. Thus it is rather unfair
  20358. for the reviewer to claim that to have to use variables is “.. very
  20359. unorthodox, and mention should be made in the documentation.” ArmSort
  20360. errors are comprehensive and are very clearly documented.
  20361. 5.1
  20362. This ‘problem’ wasted about a third of the review, which could have been
  20363. better used to mention the PROCsort and SWI interfaces or the ability to
  20364. sort on absolute numeric values, or with null strings low or high.
  20365. 5.1
  20366. May I also suggest that all software reviews should clearly state what
  20367. version is being reviewed: the ArmSort review copy was Version 2.12,
  20368. sent to Archive in February. The current Version is 2.51, which has the
  20369. following improvements: sort time reductions of between 30% and nearly
  20370. 50%; the ability to sort strings from any position, or by length; the
  20371. ability to specify a key sequence; new procedures for a fast binary
  20372. search of sorted arrays; and all programs now do run easily from the
  20373. desktop. All users have had free upgrades and seem happy with the
  20374. product. Martin Avison, Avisoft.
  20375. 5.1
  20376. (Sorry if we seem to have reviewed an out-of-date product but when
  20377. someone sends software to us for review, we have to assume it is a
  20378. “stable” version. If the software has gone from version 2.12 to version
  20379. 2.51 since February, this indicates continuous development. This is fine
  20380. but, if significant changes are made, the onus is on the software
  20381. supplier to send us the latest version. This product was still on the
  20382. “software to be reviewed” list in the May edition of Archive. If Martin
  20383. had noticed this and sent us the latest version at that stage, the
  20384. difficulty might have been avoided. Ed.)
  20385. 5.1
  20386. •   MidiVision Update − Koen Lefever has sent us an updated version the
  20387. MidiVision program on Shareware Disc 33. It is now compatible with the
  20388. new Acorn MIDI Podule ROM and capable of detecting real time messages.
  20389. The new version has been put on this month’s program disc.
  20390. 5.1
  20391. •   PRES Disc Interface & DFS − In the review in Archive 4.11 p27 we
  20392. referred to difficulties in reading 40 track BBC discs. PRES suggested
  20393. that the problem may be due to “residual data” on the discs. In other
  20394. words, they are suggesting that the problem may lie with discs that have
  20395. been written onto by different 40 track drives, some with narrow heads,
  20396. as in 40/80 drives, and some with wider tracks as in true 40 track
  20397. drives. It would be interesting to hear other people’s experiences on
  20398. this. We have also found that it is sometimes necessary to slow the head
  20399. stepping time right down as low as it will go in order to read 40 track
  20400. discs. (We also used a rather old address for PRES. It is currently P.O.
  20401. Box 319, Lightwater, Surrey, GU18 5PW. 0276−72046, fax 51427.)
  20402. 5.1
  20403. •   RISC-OS Dreaming − I would like to reply to Oliver Gunasekara’s
  20404. letter, RISC-OS Dreaming, published in Archive 4.12 p15. Many of
  20405. Oliver’s suggestions have been extensively discussed in the USENET news-
  20406. group dedicated to Acorn machines. Well-informed contributions from
  20407. Acorn staff (in a private capacity) and experienced programmers (RISC-OS
  20408. and otherwise) allow fairly definite predictions to be made as to the
  20409. likelihood of some of these suggestions being realised in later version
  20410. of RISC-OS.
  20411. 5.1
  20412. Firstly, there is almost no chance of proper demand paged virtual memory
  20413. being implemented under RISC-OS on current generation ARM processors.
  20414. The problem is that much (if not all) of RISC-OS runs with the ARM
  20415. processor in its supervisor mode. In this mode, the ARM-2 and ARM-3 are
  20416. unable to implement virtual memory. Not enough information is saved to
  20417. enable execution to be resumed after an attempt to access memory not
  20418. physically present causes the MEMC memory controller to interrupt
  20419. execution. Thus, virtual memory would require a drastic rewrite of RISC-
  20420. OS so that any code that might access virtual memory runs in user mode
  20421. or avoids memory not physically present. Acorn almost certainly do not
  20422. have the resources to do the necessary rewrite. Simpler, less effective
  20423. forms of virtual memory such as swapping out non-running programs are
  20424. possible, but would still be very complicated.
  20425. 5.1
  20426. Pre-emptive multi-tasking is, on the other hand, quite possible. It is
  20427. just that doing it without introducing subtle bugs into software written
  20428. under the assumption that multi-tasking is co-operative is fiddly. As
  20429. with virtual memory, the fact that RISC-OS did not allow for pre-emptive
  20430. multi-tasking, when originally written, makes it messy to implement
  20431. later on. Even running other tasks when the current task is blocked,
  20432. waiting for i/o, is rather tricky to implement though, according to the
  20433. grape-vine, this does indeed happen to some extent in RISC-OS 3.
  20434. 5.1
  20435. As to nicer system fonts, better design, TCP/IP file-sharing and hot-
  20436. linking − let’s hope it happens. There’s no technical obstacle and these
  20437. are definitely things necessary for Acorn to keep up with the state of
  20438. the art. A new file-system allowing more files in a directory and longer
  20439. filenames would also go down well. It would be a real boon to people
  20440. like myself who have to use RISC-OS machines in conjunction with UNIX or
  20441. MesS-DOS boxes.  Andrew Stevens, Overton.
  20442. 5.1
  20443. •   RISC-OS Dreaming − I would agree with many of the points about RISC-OS
  20444. 2.0 put forward (in Archive 4.12 p15), by Oliver Gunasekara. However,
  20445. I’m not sure that making RISC-OS look more like other graphical
  20446. interfaces will necessarily bring us much benefit.
  20447. 5.1
  20448. I am responsible for several different computer systems (micros and
  20449. minis) each of which has its own user interface from the quirkiness of
  20450. the Apple and Atari systems, to the smooth, powerful X-Windows systems.
  20451. Some of the staff prefer one system, some prefer another. It’s a bit
  20452. like choosing your favourite car, you get the one that suits you.
  20453. 5.1
  20454. Strangely enough, considering its sales, the least popular GUI in our
  20455. department is Windows 3.0. Even allowing for its deficiencies, RISC-OS
  20456. seems to have become the preferred choice for more than half our
  20457. department. Whether this is due to RISC-OS itself, applications like
  20458. Impression or the speed of the ARM3 powered machines, I’m not sure. What
  20459. I am sure of is that RISC-OS is quite capable of winning converts from
  20460. other systems.
  20461. 5.1
  20462. Even so, let’s hope that RISC-OS 3 contains a lot of those improvements
  20463. mentioned by Oliver. D Hutchinson, Sheffield.  A
  20464. 5.1
  20465.  
  20466.  
  20467.  
  20468. The Engineer Speaks...
  20469. 5.1
  20470. Ray Maidstone
  20471. 5.1
  20472. For the last few months, Ray Maidstone has been, effectively, the N.C.S.
  20473. Service Centre. He has done a great job fixing dead or dying Archimedes
  20474. computers for us and upgrading the memory of A310s. In doing so, he has
  20475. come across various recurring problems which could be avoided if a few
  20476. precautions were followed.
  20477. 5.1
  20478. Here are some hints & tips which should help to keep your Archimedes in
  20479. tip-top condition. A word of warning though, some of the things I am
  20480. suggesting should not be attempted unless you really feel competent to
  20481. do so. The general rule is, if in doubt, ask for help!
  20482. 5.1
  20483. •   300 and early 400 series keyboards − (See also the article on page 37)
  20484. These keyboards do not have sprung contacts coming together, but foil
  20485. closing over multiple contact points on sprung pads. Various people have
  20486. informed me that they have sprayed their keyboards with switch cleaner
  20487. to improve things when they have had intermittent contacts on one or
  20488. more keys. They may have got away with it, but it is my view that these
  20489. keyboards should never be sprayed with switch cleaner. The only
  20490. recommended method of servicing this item is to dismantle (but ONLY if
  20491. you feel competent to do so!) and remove foreign particles with a soft
  20492. brush and a vacuum cleaner. Anything sticky or difficult to remove is
  20493. best left to your Service Centre. WARNING: Using switch cleaner which
  20494. contains an organic solvent can destroy components within the keyboard
  20495. and slowly but surely render it useless. Be warned! (We have a dead
  20496. keyboard available for inspection if you are in any doubt! It was killed
  20497. by using Tandy’s Tix Electronic Switch Cleaner. Ed)
  20498. 5.1
  20499. •   Mouse − If you unplug your mouse, the recommended procedure for
  20500. reconnection is to first disconnect the keyboard from the computer, plug
  20501. the mouse into the keyboard then reconnect to the computer. The reason
  20502. for this is that the mouse contains one solitary chip, which has no
  20503. protection from spikes at switch-on from the outside world, whereas the
  20504. keyboard has circuitry that is slightly better equipped to cope with any
  20505. misadventures. Plugging the mouse into the keyboard and then plugging
  20506. the keyboard into the computer is the safest method and could well save
  20507. you money.
  20508. 5.1
  20509. •   Monitor smear − On the 400 series computers, it is possible to get a
  20510. composite video signal out of the sync socket which you can use for a
  20511. mono monitor. This is done by making links LK5 and LK6. However, if
  20512. these links are made, it can cause problems with certain high resolution
  20513. monitors. You get a certain amount of smearing on the ends of horizontal
  20514. lines. This effect is caused by the electronics of the Archimedes and
  20515. can only be cured by removing the links. (I have a confession to make.
  20516. Until we discovered this problem, we always tested our 400 series
  20517. computers using a mono monitor. We added links 5 and 6 but did not
  20518. remove them before sending out the computers. If you have had a 400
  20519. series computer from us, I suggest you check for this effect and remove
  20520. the links if necessary. Ed)
  20521. 5.1
  20522. •   Video RGB outlet − On the 310 and early 400 series, it is possible to
  20523. destroy the VIDC chip by plugging in the video lead to either the
  20524. computer or the monitor if one or both of these items are switched on.
  20525. The electronics of this socket do not accept the slightest static
  20526. variation and any deviation will damage the VIDC chip. Whoops! − there
  20527. goes another £30! I have designed a multiple diode module as a service
  20528. modification which upgrades these old machines to the new static-
  20529. protected specification. Whilst Acorn confirm that my modification is
  20530. “Archimedes-legal”, they will not put their name to it as yet. This
  20531. modification has been particularly well received by schools, as it stops
  20532. pupils being able to blow up their computers!
  20533. 5.1
  20534. •   Fan filters − With the fan driving air into the filter (lower half of
  20535. the diagram below) it is possible for the filter, in its blocked state,
  20536. to completely eliminate all airflow within the computer. However, with
  20537. the fan sucking air through the filter (upper half of the diagram
  20538. below), even if the filter becomes totally blocked, residual air
  20539. currents will still flow within the computer, providing some “last
  20540. resort” cooling. Also, with the filter on the outside of the fan,
  20541. cleaning couldn’t be easier. All that is needed is to slide the lid back
  20542. 10 cm (or 4 inches for those of us still in Imperial!) and suck the dust
  20543. off the filter with a vacuum cleaner.
  20544. 5.1
  20545. •   Hard drive parking − After much debate and the dismantling of two
  20546. unserviceable hard drives, I have found that, in order to give your data
  20547. maximum protection at closedown, *BYE must be followed by *SHUTDOWN.
  20548. These two commands, although slightly similar, do not seem to perform
  20549. the same task and, to my satisfaction, have been proven to be necessary
  20550. in the order stated. The effects of closing the drive down can be
  20551. verified acoustically and visually, e.g. *BYE will produce one staccato
  20552. tick noise and a short flash on the hard drive LED, but this does not
  20553. mean the drive is fully parked. Typing *SHUTDOWN will produce a multiple
  20554. wink of the hard drive LED and a triple tick noise from the drive. Take
  20555. my word that this guarantees total shutdown of the drive. If *SHUTDOWN
  20556. is typed without having typed *BYE, a single tick will be heard and the
  20557. drive will simply have moved the head to a different track, but it will
  20558. not be fully parked. (Different effects happen on different drives under
  20559. this condition.)
  20560. 5.1
  20561. (Some may call this a “belt & braces” method, but when it comes to
  20562. protecting several hundred pounds worth of hard drive, I prefer to err
  20563. on the side of caution. Ed)
  20564. 5.1
  20565. •   Removable hard drive parking − The command DISMOUNT brought up by
  20566. clicking <menu> on the SCSI icon, does not mean your drive is parked. It
  20567. simply means that the drive has shut its motor down and that the
  20568. software has “forgotten” about the drive in question. At this point, if
  20569. you switch the power off, the heads have been left out over the disc at
  20570. the last track you were using and will be in the same position next time
  20571. you switch on the power. In order to eliminate the possibility of power-
  20572. on destroying any data bits, the centre button on the removable drive
  20573. must be pressed and the drive fully disengaged with the lever. This
  20574. operation mechanically parks the heads off the disc and is the only way
  20575. to guarantee this.
  20576. 5.1
  20577. •   Stray metalware − When removing the motherboard on the 300/400 series,
  20578. it is very possible to dislodge one or more of the spring speed nuts
  20579. (for the two rear self tapping screws that “get in the way” when
  20580. removing the board). Make sure these are firmly in place when reassem
  20581. bling − better still, remove them, clamp them slightly more closed and
  20582. refit. This will prevent any further mishap which could cause shorting
  20583. under the main PCB.
  20584. 5.1
  20585. •   Stuck floppy discs − It is unfortunately possible, now and again, for
  20586. a floppy disc to become stuck in the drive. This will be due to one of
  20587. the following causes, and if you wish to keep costs to a minimum, NEVER
  20588. tug at, or forcibly remove, the stuck item.
  20589. 5.1
  20590. (Again, we have u/s floppy drives available for inspection if you need
  20591. proof. Ed.)
  20592. 5.1
  20593. 1. The metal sliding cover on the disc can become widened, perhaps due
  20594. to being bent in the post, or being sat on or whatever. As the metalwork
  20595. of the slider opens, it will act like a ratchet allowing the disc to go
  20596. in but not to come out without difficulty.
  20597. 5.1
  20598. 2. The spring that returns the metal cover can become unlaced and behave
  20599. like a fish hook, snagging the unlocking post within the drive.
  20600. 5.1
  20601. 3. The metal screening plate on the upper disc reading head within the
  20602. drive can become dislodged and catching the plastic work of the disc
  20603. (particularly on the older Sony drives).
  20604. 5.1
  20605. In ALL cases, if the drive is removed by somebody competent to do so,
  20606. you should find that delicate easing will allow the disc to come out
  20607. again without damaging the drive and, 9 times out of 10, the disc can
  20608. also be saved.
  20609. 5.1
  20610. In the case of the metal head shield of the Sony drive, simply throw it
  20611. away as it was later found to be unnecessary. Where the metal gate of
  20612. the drive is distorted, it is quite acceptable to remove this item by
  20613. unfolding it and removing the spring. The disc will operate without the
  20614. metal cover but keep little fingers out − remember the 5¼“ floppies?  A
  20615. 5.1
  20616.  
  20617. Hints and Tips
  20618. 5.2
  20619. •   Fatal error type = 5 revisited (Archive 4.12 p9) − It’s not only !Edit
  20620. that reports this error, !Draw and some other Applications abort with a
  20621. similar error, but you might want to use !Edit, for example, with fonts.
  20622. The version in Archive 4.12 p9 simply hides the !Font-folder, so the
  20623. idea is to have the Applications just to see part of the !Fonts folder.
  20624. The easiest thing to do is simply to split up the fonts-directory into
  20625. directories − i.e. create two directories within !Fonts − in the first
  20626. directory (maybe SmallFonts within your !Fonts Folder) just put the
  20627. really necessary fonts in (just Trinity, Homerton, Corpus or so), but
  20628. remember that there may only be up to 50 fonts (approximately) −
  20629. including styles (say Italic, Medium, Bold etc). In the second directory
  20630. (maybe LargeFonts) put every font that is not already included in the
  20631. first directory.
  20632. 5.2
  20633. The next thing to change is your !Boot and !Run-File from the !Fonts
  20634. application.
  20635. 5.2
  20636. The !Boot file should read as follows:
  20637. 5.2
  20638. | !Boot file for !Fonts
  20639. 5.2
  20640. | *********************
  20641. 5.2
  20642. IconSprites <Obey$Dir>.!Sprites
  20643. 5.2
  20644. RMEnsure FontManager 2.42 RMLoad <Obey$Dir>.Fonts
  20645. 5.2
  20646. RMEnsure SuperSample 0.04 RMLoad <Obey$Dir>.Super
  20647. 5.2
  20648. Set Small$Fonts <Obey$Dir>. SmallFonts.
  20649. 5.2
  20650. Set Large$Fonts <Small$Fonts> ,<Obey$Dir>.LargeFonts.
  20651. 5.2
  20652. If “<Font$Prefix>”=“” Then SetMacro Font$Path <Font$Prefix>
  20653. 5.2
  20654. If “<Font$Prefix>”=“” Then Set Font$Prefix <Large$Fonts>
  20655. 5.2
  20656. SET Alias$@RunType_745 RUN <Obey$Dir>.FontHelp -Obey %%*0
  20657. 5.2
  20658. SET File$Type_745 FontObey
  20659. 5.2
  20660.  
  20661. 5.2
  20662. The !Run file should read as follows:
  20663. 5.2
  20664. | !Run file for !Fonts
  20665. 5.2
  20666. | ********************
  20667. 5.2
  20668. Obey <Obey$Dir>.!Boot
  20669. 5.2
  20670. Echo Outline Font Manager 2.42 installed.
  20671. 5.2
  20672. Echo Fonts now available:
  20673. 5.2
  20674. Echo
  20675. 5.2
  20676. FontCat
  20677. 5.2
  20678.  
  20679. 5.2
  20680. In addition, you have to create a Basic program called Fonthelp, which
  20681. should be situated in the !Font folder and should read like this:
  20682. 5.2
  20683. REM >FontHelp  Version 1.00 20.1.91
  20684. 5.2
  20685. REM *******************************
  20686. 5.2
  20687. REM Written by: Martin Sperl
  20688. 5.2
  20689. REM             Nattergasse 12/32
  20690. 5.2
  20691. REM             A-1170 Vienna (Wien)
  20692. 5.2
  20693. REM             AUSTRIA
  20694. 5.2
  20695.  
  20696. 5.2
  20697. END=&A000
  20698. 5.2
  20699. DIM Data 255
  20700. 5.2
  20701. SYS“OS_GetEnv” TO ENV$
  20702. 5.2
  20703. ENV$=MID$(ENV$,INSTR(ENV$,“-Obey ”) +6)
  20704. 5.2
  20705. *SET Font$Prefix <Small$Fonts>
  20706. 5.2
  20707. SYS “Hourglass_On”
  20708. 5.2
  20709. SYS “Wimp_Initialise”,200, &4B534154,“**LoadMore**”
  20710. 5.2
  20711.  TO ,TaskHandle%
  20712. 5.2
  20713. SYS “Wimp_StartTask”,“OBEY ”+ENV$
  20714. 5.2
  20715. REPEAT
  20716. 5.2
  20717. SYS “Wimp_Poll”,0,Data TO R%
  20718. 5.2
  20719. UNTIL R%=0
  20720. 5.2
  20721. SYS “Wimp_CloseDown”,TaskHandle%
  20722. 5.2
  20723. *SET Font$Prefix <Large$Fonts>
  20724. 5.2
  20725. SYS “Hourglass_Off”
  20726. 5.2
  20727. END
  20728. 5.2
  20729. Then create a sprite called “file_745” (maybe the same sprite as for an
  20730. Obey-file, but another colour) and include it in the !Sprites file of
  20731. !Fonts.
  20732. 5.2
  20733. To start an application which can only handle some fonts without errors
  20734. just change the Filetype of the !Run-file with “Settype !Run FontObey”
  20735. to FontObey. Then you can start the application as normal without having
  20736. to worry about fonts at all.
  20737. 5.2
  20738. Martin Sperl, Austria
  20739. 5.2
  20740. •   Formatting PC disks − If, like me, you do not have a PC Filer on your
  20741. Archimedes you will have to format DOS diskettes (for use with the PC
  20742. Emulator) on a PC. If your PC has a 1.44M drive the standard FORMAT
  20743. command needs modifying. The command to use is
  20744. 5.2
  20745. FORMAT  A:  /N:9  /T:80
  20746. 5.2
  20747. This certainly works on the PS/2 55SX I have at work.  Richard Wheeler,
  20748. Wokingham  A
  20749. 5.2
  20750.  
  20751. 5.2
  20752. Impression H & T
  20753. 5.2
  20754. •   Function key changes − Computer Concepts have chosen to use <ctrl-F3>
  20755. and <ctrl-F4> for ‘save’ and ‘search and replace’ instead of the more
  20756. standard <F3> and <F4>. If you prefer to use the latter, simply go into
  20757. the edit styles dialogue (<ctrl-F6>), select first italic and then bold
  20758. and, on each, change the keyboard shortcut (or delete it altogether), as
  20759. follows... You could, for example, change from <F3> to <shift-ctrl-F3>
  20760. by clicking in the shortcut box, pressing <ctrl-U> to delete the
  20761. existing text and pressing <shift-ctrl-F3>, at which point the words
  20762. “<shift-ctrl-F3>” will appear in the box. Click OK and <F3> will now
  20763. produce the desired “save” effect.
  20764. 5.2
  20765. If you already have a lot of documents, this could prove a frustration
  20766. since you would have to do this with every document individually. Also,
  20767. you would need to go into Impression’s Auto directory and edit the
  20768. default document. Michael Ben-Gershon, Israel.
  20769. 5.2
  20770. •   Only 77 graphics frames allowed in a chapter − Impression won’t allow
  20771. more than 77 graphics frames in a single chapter. This is due to the
  20772. ADFS limitation of 77 files per directory − earlier versions of
  20773. Impression (2.03) normally crashed after loading the offending file when
  20774. displaying. Impression 2.1 does not allow to save a file with more than
  20775. 77 graphics-frames per chapter. I mentioned it to CC but they told me
  20776. “This is something that would be extremely difficult to overcome. It
  20777. should only affect a very small percentage of users”. So beware of too
  20778. many frames in one chapter !!! Martin Sperl, Austria
  20779. 5.2
  20780. Couldn’t you get round this by putting several draw objects together in
  20781. a single file and then show different parts of the same file in
  20782. different frames? I haven’t tried it, but it should work. Ed.
  20783. 5.2
  20784. •   Running Impression documents from !TinyDirs − If you use !TinyDirs to
  20785. install an Impression document on the icon bar and then click on it to
  20786. run it, a new copy of !Impress will be fired up even if one is already
  20787. running.
  20788. 5.2
  20789. This seems to be because of a small mistake in the !TinyDirs.!RunImage
  20790. programme. In the PROCdataopen procedure are two lines which read as
  20791. follows:
  20792. 5.2
  20793. 900 q%?(44+LEN$(q%+44))=0
  20794. 5.2
  20795. 910 q%!0=(48+LEN$(q%+44))ANDNOT3
  20796. 5.2
  20797. If you reverse the order of these two lines the program runs correctly.
  20798. Hugh Eagle, Horsham
  20799. 5.2
  20800. •   Special Characters − The full list of ISO 8859 characters is included
  20801. in the Archimedes User Guide, e.g. page 455 for the Latin 1 alphabet.
  20802. However, it’s not too helpful in that it is listed in hexadecimal. If
  20803. you want to enter characters using <Alt> and the numeric keypad, you
  20804. need to know the decimal numbers. Those of you with EFF fonts will have
  20805. a manual that shows various of the character sets by decimal number.
  20806. This is particularly useful for Zapf Dingbats and MathGreek fonts. Jim
  20807. Nottingham, York.
  20808. 5.2
  20809. (For those without EFF fonts, I have put an Impression file on the
  20810. monthly program disc so that you can print out your own lists of
  20811. characters just by changing the font in the style definition. Ed.)
  20812. 5.2
  20813. • Wrong sprite colours in Impression − If, when you drag a sprite into
  20814. an Impression frame, the colours come out all wrong, it’s probably
  20815. because the sprite has not got a palette. If so, the answer is to give
  20816. it a palette, which can be done as follows:
  20817. 5.2
  20818. 1.   Load the sprite file containing your sprite into !Paint.
  20819. 5.2
  20820. 2.   Double click on the thumbnail picture of the sprite you want to
  20821. alter.
  20822. 5.2
  20823. 3.   Click <menu> over the sprite window that now appears, then move to
  20824. the Edit submenu and click on the Palette item at the bottom.
  20825. 5.2
  20826. 4.   Save the amended sprite file.
  20827. 5.2
  20828. 5.   Load the amended sprite back into Impression.
  20829. 5.2
  20830. (Note: if you don’t want to keep the amended sprite, you can, if you
  20831. like, shortcut steps 4 and 5 and save the sprite direct from !Paint into
  20832. Impression.) Hugh Eagle, Horsham  A
  20833. 5.2
  20834.  
  20835.  
  20836.  
  20837. Finally, Andrew Scott...
  20838. 5.2
  20839. The following comments and hints are based on my first week of using the
  20840. machine which, from the outset, I must say is brilliant, especially
  20841. compared with my old Archimedes A310.
  20842. 5.2
  20843. During the time I have had the machine, I have tried quite a number of
  20844. applications. Now, whilst most of them have worked perfectly, I have had
  20845. problems with the following:  Atomwide Hi-Res. modes, Jinxter and
  20846. Corruption adventures (CIS Adventure pack), Beebug Toolbox disc sector
  20847. editor, Data Store’s FontFX (version 4.04), Mitre Software’s DiscTree
  20848. (version 2.16) and !DSEdit, PD sound sample player.
  20849. 5.2
  20850. The Atomwide mode designer comes with a number of sets of modes for
  20851. various monitors, but none of these is completely suitable for the A5000
  20852. and Acorn’s multisync monitor. The mode designer application, however,
  20853. works fine, provided you remember to select monitor type 1, and machine
  20854. A540/A5000. Using this, it is quite straightforward to modify the hi-
  20855. res. modes (SVGA, 102 etc.) to produce working versions of these.
  20856. However, make sure that you work in mode 27 while defining the new
  20857. modes, as some of the other modes (12, 15 etc.) are redefined by the
  20858. standard mode module (MegaModes), and this can produce some strange
  20859. effects − they appear as two letter box shaped screens one above the
  20860. other!!
  20861. 5.2
  20862. The adventures Jinxter and Corruption do not work with version 3.87 of
  20863. the SharedCLibrary which is in RISC-OS 3. However, they are supplied
  20864. with a very old version (1.01) which will work if you *RMKill the
  20865. version in RISC-OS 3 first. Better still, alter the !Run files to
  20866. automate this, and restore the RISC-OS 3 version afterwards. I have
  20867. included two suitable !Run files on the disc. On the monthly program
  20868. disc. Ed.)
  20869. 5.2
  20870. The disc sector editor in Beebug’s Toolbox (version 1.00) does not work
  20871. at all on the A5000, and hangs the machine!!
  20872. 5.2
  20873. FontFX from the Data Store (version 4.04) does not like the default
  20874. setting for the system macro Font$Path. However, if you edit out the
  20875. reference to Font$Prefix it works OK − not a perfect solution, but it
  20876. works. e.g.
  20877. 5.2
  20878. *SetMacro Font$Path adfs::IDEDis c4.$.!Fonts.,Resources:$.Fonts.
  20879. 5.2
  20880. DiscTree (version 2.16) from Mitre Software will load, but all attempts
  20881. to access a disc (hard or floppy) produce a fatal internal error.
  20882. 5.2
  20883. !DSEdit, the excellent PD sound sample player will not play samples.
  20884. This is because the author has been ‘naughty’ and used an abbreviation
  20885. for the ChannelVoice command. RISC-OS 3 wrongly interprets the abbrevia
  20886. tion as the new command *ChangeDynamicArea and hence causes an error.
  20887. This is easily corrected by changing the abbreviation to the full
  20888. command. Acorn have issued a warning with RISC-OS 3 that a number of
  20889. commands have different minimum abbreviations, and have provided a file
  20890. on the RISC-OS 3 Support Disc to change them all back to what they were
  20891. in RISC-OS 2.
  20892. 5.2
  20893. Something else that I have observed is that if you use the !Configure
  20894. application to auto-start any of the ROM based applications then this
  20895. will cease to work if you have a !Boot file on the hard disc which
  20896. includes a line like :
  20897. 5.2
  20898. *Desktop -file <Obey$Dir>.DeskS tart
  20899. 5.2
  20900. Instead you must include a line in the DeskStart file to run each of the
  20901. applications which you want to auto-start. e.g.
  20902. 5.2
  20903. Run Resources:$.Apps.!Alarm
  20904. 5.2
  20905. Hardware problems − (I have left this in to see if anyone has any ideas!
  20906. Ed.) I have discovered a fault with my machine, that concerns the real
  20907. time clock. Every time the machine is reset with either <ctrl-break>, or
  20908. turning it off and on again, the real time clock is reset back to the
  20909. last time that it was explicitly set too, e.g. using *Set Sys$Time or
  20910. the Set clock option on !alarm. The rest of the time, the clock appears
  20911. to function correctly.
  20912. 5.2
  20913. My first thought was a loose battery connection. However, on opening the
  20914. case, I found that the machine doesn’t even have a battery! While the
  20915. case was off, I checked for any loose connections, but could not find
  20916. any.
  20917. 5.2
  20918. Next, I thought that it might be a software fault and not a hardware
  20919. one, because the fault only occurs when the machine is reset, which is a
  20920. software function. I noticed that in the list of modules in RISC-OS 3
  20921. there is a new module called RTCAdjust which presumably stands for Real
  20922. Time Clock Adjust. Could this be causing the problem? The module
  20923. provides no star commands or software interrupts, only a service code
  20924. handler. I have not been able to confirm if this module is causing the
  20925. problem or not. Any ideas?  A
  20926. 5.2
  20927.  
  20928. The Engineer Speaks (again)
  20929. 5.2
  20930. Ray Maidstone
  20931. 5.2
  20932. As there were several comments of appreciation received regarding the
  20933. hardware care section labelled “The Engineer speaks” last month, further
  20934. points of interest have been forwarded and are listed here.
  20935. 5.2
  20936. Headphone sockets
  20937. 5.2
  20938. These stereo sockets are mechanically very delicate and several machines
  20939. have been in for repair. (This is presumably because these sockets are
  20940. getting used more now that there seems to be a little more notice being
  20941. taken of the fact that the Archimedes is capable of matching other makes
  20942. of computer, when it comes to music and sound effects.) The replacement
  20943. of these sockets is fairly simple but involves completely dismantling
  20944. your machine and getting the motherboard out.
  20945. 5.2
  20946. More serious is the fact that we’ve had some machines in for repair with
  20947. the sound output chip blown. Although this is a very cheap repair, I can
  20948. only think that this was caused by people using the socket whilst music
  20949. was actually playing! Looking at the circuit diagram, I find it
  20950. difficult to see how shorting the contacts in the socket by plugging in
  20951. headphones, or whatever, whilst it is playing should be able to blow
  20952. anything up, but there it is. I suggest it would be for sensible to
  20953. cause your machine to be silent while plugging things into this socket.
  20954. 5.2
  20955. RGB video output failure
  20956. 5.2
  20957. Further to the question “Does disconnection or connection to the RGB
  20958. socket while things are switched on blow the VIDC (Video Output) chip?”
  20959. The answer is most definitely yes, even though several people have
  20960. expressed surprise, saying “Well, I’ve plugged and unplugged mine for
  20961. years and years, and I’ve never had any problems.”
  20962. 5.2
  20963. The fact is that eventually it will blow up, as there simply isn’t any
  20964. static protection in the early machines. The modification I mentioned
  20965. last month has sparked a lot of interest. (Bad choice of words there,
  20966. Ray! Ed.) We can fit this for you and we can offer this item, fitted for
  20967. £15, but you will have to sort out the carriage.
  20968. 5.2
  20969. This protection feature is already incorporated into the 400/1 series,
  20970. the 3000 and everything since, and will only be needed in the 300 series
  20971. and the early 440’s. To my certain knowledge, this modification has put
  20972. an end to the grief being caused by pupils “in the know” at a couple of
  20973. schools, deliberately plugging and unplugging monitors and Arabellas
  20974. (that’s what VIDCs are called) are not cheap.
  20975. 5.2
  20976. A3000 crashes and aborts
  20977. 5.2
  20978. My findings on this subject are a bit distressing and, to make matters
  20979. worse, I own one of these troublesome machines and can speak from
  20980. experience. We have had a slowly increasing number of people losing work
  20981. because their 3000 occasionally crashes with the “Abort on transfer”, or
  20982. “Address exception” captions coming up. These problems have been traced
  20983. to impedance peculiarities on the pin and socket connections of the
  20984. expansion ram cards. At first, the ram expansion itself was suspected
  20985. but we have finally discovered that these connections sometimes go high
  20986. impedance at the high frequencies of the ram access speeds. The
  20987. “sometimes” is what’s giving the problem, as the bulk of these expan
  20988. sions run trouble free.
  20989. 5.2
  20990. My own belt and braces solution to this has been to remove the pins and
  20991. sockets, and replace them with gold plated counterparts − No more
  20992. problems! This, of course, is “open heart” surgery and, if not done by
  20993. an Acorn Service Centre, will invalidate any guarantee and, if it is not
  20994. performed using the correct equipment, it can destroy the machine as
  20995. well. (Solder suckers are completely incapable of performing this task
  20996. and the 4 layer board is too delicate to risk damaging.)
  20997. 5.2
  20998. I have helped several people out with a temporary DIY tip that consider
  20999. ably improves the reliability of these connections. However, you should
  21000. only attempt this if you are familiar with opening your machine and
  21001. fiddling inside it. Locate the ram board, lift it off the P.C.B.
  21002. expansion pins and lay the board to one side. Take a can of WD40, or
  21003. Contek 9, but nothing else, and find a clean bottle top or small dish.
  21004. Spray some of this into the cup and, using a cotton bud, carefully rub
  21005. around all the expansion pins, taking care not to distort any. Do not
  21006. spray anything directly into the machine.
  21007. 5.2
  21008. This should be done in a well lighted area and at the end, the pins
  21009. should be slightly moist (not too much and not too little!). Take the
  21010. ram card, and offer it onto the pins, checking that all pins align
  21011. properly into their relevant socket, and press it down. (Check that the
  21012. speaker wires do not get in the way.) Once the board has “bottomed”,
  21013. pull it back up again about ¼“ (6mm), and then ease it down until it
  21014. still about 1/32” (1mm) away from the bottom. Don’t push it all the way
  21015. down this time so that it leaves the connectors on “fresh” metal. This
  21016. procedure should temporarily relieve the crash situation but the
  21017. following test will reveal whether your problem is corrosive or
  21018. mechanical.
  21019. 5.2
  21020. Leaving the lid off, (beware of the high voltages in the power supply if
  21021. your machine has a cardboard p.s.u. cover) connect your machine up to
  21022. monitor and mains − no other connections are needed − and switch on. You
  21023. should now have the desktop visible on your monitor. If your expansion
  21024. is Atomwide then very slightly rocking it from front to back (Do not
  21025. exceed ¼“ movement) will not disturb the display if the fault was
  21026. corrosion. If the fault was mechanical, you will see the Address
  21027. Exception or Abort error flag, in which case the problem is mechanical
  21028. and you need to rush to your nearest Acorn Service Centre.
  21029. 5.2
  21030. If you have the Morley board, this is a little more difficult, as you
  21031. will have to carefully hinge up the keyboard and find a way of holding
  21032. it up (get someone to help you, as if you drop it you could short
  21033. something, or break the flexible connector strips) and now take hold of
  21034. the front edge of the board and raise and lower it about 3/8“ and watch
  21035. for the same effects as already mentioned.
  21036. 5.2
  21037. (This problem would probably have been averted if the pin and socket
  21038. components used at time of manufacture had been the gold flashed type,
  21039. but this obviously would have increased the product cost.)
  21040. 5.2
  21041. STOP PRESS
  21042. 5.2
  21043. After talking to another dealer at the recent Acorn User Show, I have
  21044. been able to find out from a couple of their personnel (unofficially)
  21045. that Acorn did indeed have a couple of batches of A3000’s that came with
  21046. oxidized expansion pins. So I suggest that either you offer your machine
  21047. to your dealer for him to sort out, or heed the above instructions, and
  21048. also try a light rub with a very small piece of “Scotchbrite” or pan
  21049. scourer. Do not use anything metallic because that will leave a
  21050. residue.  A
  21051. 5.2
  21052.  
  21053. Hints and Tips
  21054. 5.3
  21055. •   AMX mouse − To replace the Archimedes mouse with an AMX mouse from a
  21056. BBC computer, all that is necessary is to change the plug on the AMX
  21057. mouse for a miniature 9 pin DIN plug. The correct plug can be obtained
  21058. from Maplin Electronics (0702−554161). It is stock number JX19V (price
  21059. 82p +p&p). Cut the original 20 way IDC connector off the mouse cable and
  21060. then solder the wires onto the new plug. The pins are very close
  21061. together, so a fair amount of care is required. It is easiest to start
  21062. with the middle pins and work outwards. I found that the plastic housing
  21063. supplied with the plug was just too wide to fit into my A3000 but it can
  21064. easily be cut smaller with a sharp knife.
  21065. 5.3
  21066. Paul Marshall, Loughborough.
  21067. 5.3
  21068. (Has anyone got the connections to do the same sort of thing but with a
  21069. BBC Trackerball? Ed)
  21070. 5.3
  21071. •   Cops and Plague Planet − I should like to pass on the following advice
  21072. received from Alpine.
  21073. 5.3
  21074. Both Cops and Plague Planet re-configure the character set used to their
  21075. own. If you have a copy of Alpine Software’s ALPS (Adventure Language
  21076. Programming System) this contains a copy of the default Archimedes
  21077. character set e.g. $.!ALPS. Resources.defaultchr.
  21078. 5.3
  21079. Copy this file to the appropriate games directory (e.g.
  21080. $.COPS.defaultchr), and add the following line at the very end of the
  21081. appropriate !Run file (e.g. for Cops):
  21082. 5.3
  21083. Print <Cops$Dir>.defaultchr
  21084. 5.3
  21085. This will then automatically reset the computer to the default system
  21086. font upon returning to the Desktop.      Rob Brown, Tadworth
  21087. 5.3
  21088. •   Corruption and Jinxter − I have recently transferred a number of the
  21089. earlier Magnetic Scrolls adventure games from floppy to hard disc and
  21090. have encountered certain problems with their usage of the Shared C
  21091. Library !System module.
  21092. 5.3
  21093. Fish! does not use the Shared C Library at all. Both The Guild of
  21094. Thieves and The Pawn came with version 3.50 of the Shared C Library and
  21095. they function with more recent versions without any difficulty. However,
  21096. my copies of Corruption (version 1.12) and Jinxter (version 1.30) came
  21097. with version 1.01 of the Shared C Library and they will not function at
  21098. all with any of the more recent versions.
  21099. 5.3
  21100. What I wanted to achieve was an easy means of starting either program
  21101. straight from the Desktop and automatically loading the “old” version of
  21102. the Shared C Library. After some trial and error I have found one way
  21103. round this by modifying the !Run files for both applications.
  21104. 5.3
  21105. Firstly, version 1.01 of the Shared C Library needs to be copied to a
  21106. suitable directory within the !System application on the hard disc (e.g.
  21107. $.!System.oldModules.CLib_v101).
  21108. 5.3
  21109. Unfortunately the command RMEnsure will not only check for a particular
  21110. version of a module but it will also accept more recent versions. In the
  21111. !Run file I have therefore used this command to check whether a
  21112. subsequent version (e.g. 1.02) of the Shared C Library is already loaded
  21113. and, if not, the most up to date version is loaded from the !System
  21114. application. The command RMKill is then used to delete this module
  21115. before loading the “old” version 1.01 of the Shared C Library. Finally,
  21116. after exiting the program, the “old” Shared C Library is deleted, the
  21117. latest version (currently 3.75) is re-loaded, and the !Run file finally
  21118. returns control direct to the Desktop.
  21119. 5.3
  21120. | !Run file for Corruption
  21121. 5.3
  21122. | (or Jinxter − change references from “Corruption” to “Jinxter”)
  21123. 5.3
  21124. | (requires Shared C library version 1.01 dated 13-Jun-88)
  21125. 5.3
  21126. |
  21127. 5.3
  21128. IconSprites <Obey$Dir>.!Sprites
  21129. 5.3
  21130. WimpSlot -min 512K -max 512K
  21131. 5.3
  21132. |
  21133. 5.3
  21134. Set Corruption$CLibLoaded 1
  21135. 5.3
  21136. RMEnsure SharedCLibrary 1.02 Set Corruption$CLibLoaded 0
  21137. 5.3
  21138. If Corruption$CLibLoaded=0 then If “<System$Path>” = “” then Error
  21139. System resources cannot be found
  21140. 5.3
  21141. If Corruption$CLibLoaded=0 then RMLoad System:Modules.Clib
  21142. 5.3
  21143. RMKill SharedCLibrary
  21144. 5.3
  21145. RMLoad System:oldModules.CLib_v101 .Clib
  21146. 5.3
  21147. RMEnsure SharedCLibrary 1.01 Error You need SharedCLibrary
  21148. 5.3
  21149. version 1.01 ONLY
  21150. 5.3
  21151. Unset Corruption$CLibLoaded
  21152. 5.3
  21153. |
  21154. 5.3
  21155. Set Corruption$Dir <Obey$Dir>
  21156. 5.3
  21157. Run <Corruption$Dir>.Corruption.f1 <Corruption$Dir>.Corruption.f2
  21158. 5.3
  21159. |
  21160. 5.3
  21161. |
  21162. 5.3
  21163. RMKill SharedCLibrary
  21164. 5.3
  21165. RMEnsure SharedCLibrary 3.75 RMLoad System:Modules.Clib
  21166. 5.3
  21167. RMEnsure SharedCLibrary 3.75 Error You need SharedCLibrary
  21168. 5.3
  21169. version 3.75 or later
  21170. 5.3
  21171. Desktop
  21172. 5.3
  21173. WARNING − any other programs active within the Desktop should be closed
  21174. down and any files saved before starting either Corruption or Jinxter −
  21175. especially those programs which use the Shared C Library! Perhaps
  21176. another reader can find a way round this?
  21177. 5.3
  21178. Rob Brown, Tadworth
  21179. 5.3
  21180. •   Elite − When you start Archimedes Elite, it prompts you to enter a
  21181. word from the manual, as an anti-piracy precaution. When it says “type
  21182. the word exactly as shown” it means the input is case sensitive. You
  21183. have to remember to take the Caps Lock off. This falls into the category
  21184. of “obvious to most people” but hopefully this hint will save somebody
  21185. the frustrating quarter of an hour which I spent trying to get the thing
  21186. to work when it first arrived.
  21187. 5.3
  21188. People who are used to the 8 bit version of the game should watch out
  21189. for little things which have changed. For example, furs are now illicit
  21190. cargo in the same way that narcotics and firearms are. You are told this
  21191. in the manual but you have to look for it pretty carefully!
  21192. 5.3
  21193. Neil Hoggarth, Winchester  A
  21194. 5.3
  21195.  
  21196. 5.3
  21197. Impression Hints & Tips
  21198. 5.3
  21199. •   Position holding − My repeated plea for a way of holding the current
  21200. position in a document when you expand and contract the window has been
  21201. answered! A box of four Archive mugs is winging its way to Bob Potter of
  21202. Bath. He gave me the basic idea which I have amplified slightly.
  21203. 5.3
  21204. Basically, as Bob pointed out, when you expand and contract the window,
  21205. Impression returns to the position that was current when the window was
  21206. small. (Surely, CC, this isn’t very sensible, is it? You are more likely
  21207. to change the current position when working in the full size window. Why
  21208. not change it whenever you move about within the document?) Anyway,
  21209. given that this is how it works at present, all you have to do to
  21210. maintain your position is, as soon as you have shrunk the window, press
  21211. <cursor-left> (and then <cursor-right> if you want to) so that the
  21212. current position will be displayed and remembered within the small
  21213. window. The only slight disadvantage with this is that if the small
  21214. window is very small, you will find the cursor near to the top of the
  21215. window when you expand it, not near the middle. Thanks, Bob!  A
  21216. 5.3
  21217.  
  21218.  
  21219. The Engineer Speaks
  21220. 5.3
  21221. Ray Maidstone
  21222. 5.3
  21223. •   Hard drive mounts − Several customers have had cause to ship their
  21224. Archimedi to me for repair, and a hardware problem has come to light.
  21225. Some of you have purchased hard drives that have been mounted on thin
  21226. aluminium brackets. These rather flimsy brackets easily distort under
  21227. small amounts of G stress and, unfortunately, a few harddrives have gone
  21228. to the great hard disc graveyard in the sky. Aluminium was used by the
  21229. Airforce because of its tensile properties, and should (due to this very
  21230. fact) not be used to anchor a hard drive. These small brackets deform
  21231. under stress and leave the drive “flapping” about.
  21232. 5.3
  21233. Another comment about brackets − a lot of them are fine for their
  21234. supporting properties but not very good when it comes to air circula
  21235. tion. This can be improved by either punching some 3/8“ holes in the
  21236. sides, or by buying a pair of Paul’s new nifty side brackets at £4 a
  21237. pair. We have had a few instances of over-heating causing premature
  21238. decease of drives, particularly with back planes full of podules and a
  21239. partly blocked filter. It is possible that, by reducing the bracket
  21240. size, this could have been avoided.
  21241. 5.3
  21242. •   *Shut and *bye − The last word! I have not, at any time in my
  21243. comments, stated that the suggestions I have made are law, I have merely
  21244. offered the result of my findings to those who hadn’t a clue of what was
  21245. going on. There are a few small, old drives that need both, but most
  21246. only need one command to park. The removables, however, most certainly
  21247. do not park, and only the operating lever finally parks the heads. These
  21248. findings came about from observations of partially dismantled units
  21249. operating under standard command use.
  21250. 5.3
  21251. •   LBP4 laser printers − I have been asked about switch on/off procedures
  21252. for these, and I reckon that, to minimise “spikes”, the order should
  21253. be... when switching on, either do so all together or the printer last,
  21254. and turning off, either do it all altogether or switch off the printer
  21255. first.
  21256. 5.3
  21257. •   Cooling − Following the success of quietening the fans on Archimedes,
  21258. external hard drives have now been added to the list, and no heat
  21259. problems have arisen (mainly because of 14 months of actual proving
  21260. before releasing). Whilst assessing the quietening for these drives, it
  21261. was surprising to find just how mechanically noisy some makes of fan
  21262. were, as nearly 50% of the noise from the unit was being conducted
  21263. through the chassis assembly.
  21264. 5.3
  21265. I have also been asked “If I don’t like Acorn’s cooling method, what
  21266. would I like instead?” My reply is that, in my opinion, the current fan
  21267. with or without a quietener (that never lets the fan speed drop below
  21268. 75%) is not quite enough in the real world. Particularly if the filter
  21269. is on the inside, hardly anyone appears to pay much attention to keeping
  21270. the filter clean. Therefore, I have found a rather nice miniature fan
  21271. (currently being used by Morley in their external hard drives) that,
  21272. when introduced into the opposite side of the case to the present
  21273. arrangement, and being set to push air out of the case as the other
  21274. sucks it in, really gets some cooling done.
  21275. 5.3
  21276. A cautionary note about airflow is not to stand external floppy and hard
  21277. drive units too close to the sides of the Archimedes, or soft surfaces
  21278. under the A3000, as “what goes in must come out” and I have seen several
  21279. instances of hot machines being caused by the proximity of external
  21280. surfaces. The A3000 has a power supply that runs quite hot and, being
  21281. encased in fireproof cardboard, (on the earlier machines, anyway) made
  21282. things even more heated. I am using the miniature fan, aimed at the end
  21283. of the P.S.U., to assist temperature differences in this rather enclosed
  21284. environment. If anyone is interested in more details, let me know. This
  21285. small fan gives off very little sound and certainly improves longevity.
  21286. The lack of space inside the A3000 generally adds to the poor cooling in
  21287. the P.S.U. and any air movement is better than none.
  21288. 5.3
  21289. I made the comment above about fan quieteners not slowing the fan more
  21290. than 75% because, in the course of my development, I also tried systems
  21291. that reduced the fan speed to 40%, and also did one trial where I
  21292. stopped it all together for the first quarter hour, as no heat would
  21293. build up until after this. The fan would then thermostatically cut in
  21294. and then run in a varied way subject to temperature requirements. These
  21295. were all dropped due to the fact that, as the Archimedes box is not at
  21296. all aerodynamic, once the temperature began to build up, certain items
  21297. within it started to experience particularly large temperature rises
  21298. i.e. hard drive, P.S.U. and floppy drive. The final unit chosen simply
  21299. took the fan below the noise of air flare speed and, together with the
  21300. chassis decoupling grommets, removed so much noise that only the sound
  21301. of the hard drive rang in the ears. I would caution people against using
  21302. controllers that slow the fan excessively.
  21303. 5.3
  21304. •   IDE cabling − I notice that IDE drive cables have been quoted as long
  21305. as 20“. I have it on very good authority that in some cases, even 12” is
  21306. pushing it. This is because IDE signals tend to be far more easily
  21307. corrupted than those on SCSI lines. So please be warned and keep them as
  21308. short as possible.  A
  21309. 5.3
  21310.  
  21311. Hints and Tips
  21312. 5.4
  21313. •   A5000 monitor problem − One problem which various people seem to have
  21314. had with the Acorn A5000 monitors is intermittent contact on the mains
  21315. cable but the solution is simple. When you plug the power cable into the
  21316. monitor, it seems to go in but actually, to get it fully home, you have
  21317. to push it very firmly.
  21318. 5.4
  21319. •   Draw files in Impression − Did you know that when using Draw files in
  21320. Impression frames, it is possible to “zoom” in on a part you want to
  21321. concentrate on and bring it up to “fill the frame”? This means you can,
  21322. for example, call up a file of, say, a fruit filled bowl and then choose
  21323. the apple to fill the space available in your document or show a group
  21324. of cartoon figures and, in the next frame, have a “close up” of one
  21325. face. Since Draw files are capable of incredible scaling, their should
  21326. be no real loss of detail involved.
  21327. 5.4
  21328. The procedure is simple. Create a frame for the draw file. Open the
  21329. directory containing the Draw file. Drag it into the frame in the usual
  21330. way. Changing the shape of the frame with its handles using <select>
  21331. will “crop” the picture until only the part you require is visible. Then
  21332. enlarge the frame using the adjust button on the corner handles. The
  21333. cropped picture will “grow” with your mouse movements. (Well, stone me!
  21334. I didn’t know that! Please keep sending these “obvious” hints − they are
  21335. not obvious to everyone. Ed.)
  21336. 5.4
  21337. Incidentally, don’t try moving a frame containing a Draw file around the
  21338. page using the usual method of pointing inside it, holding down <select>
  21339. and waiting for the blue lines to appear. If you don’t wait quite long
  21340. enough, the graphic moves inside the frame and bang goes your careful
  21341. alignment! Instead, hold down <ctrl> when you press <select> and the
  21342. frame can be moved safely and immediately. Kevin Beales, Shropshire.
  21343. (The latter hint was also sent in by Johannes Thordarson of  Ice
  21344. land.)  A
  21345. 5.4
  21346.  
  21347. Hints and Tips
  21348. 5.5
  21349. •   A5000 PC delete danger – I found out the hard way that deleting the PC
  21350. directory (and probably Drive_C as well) gives a disc error over the
  21351. area of the deleted partition. The only solution is to reformat the hard
  21352. disc and restore the last backup. J.R.McLachlan, Hertford.
  21353. 5.5
  21354. Yes, there does appear to be a problem here. The same thing happened to
  21355. us. In theory, the idea is that Drive_C is a filetype that is not
  21356. deleteable. The trouble is that on the A5000, it seems to get confused
  21357. and half delete it, leaving a blank entry in the file table (seen as a
  21358. blank line in the filer window if you use “full info”). The answer is to
  21359. change the filetype to, say, FFF with
  21360. 5.5
  21361. *SETTYPE $.<pathname>.Drive_C FFF
  21362. 5.5
  21363. before you try to delete it. Ed.
  21364. 5.5
  21365. •   BBC Tracker Ball − In December’s Archive, Paul asked for a wiring
  21366. diagram to convert a BBC tracker ball to an Archimedes one. I have
  21367. converted an old Marconi tracker ball for use on the Archimedes using
  21368. the following diagram.
  21369. 5.5
  21370. The nine wires come out of the bottom of the tracker ball socket as I
  21371. have drawn it. Socket 1 is marked, or it is on mine.
  21372. 5.5
  21373. The connections are as follows...
  21374. 5.5
  21375.    9-pin   Trackerball
  21376. 5.5
  21377.    mini DIN   Socket
  21378. 5.5
  21379.    1   3   yellow
  21380. 5.5
  21381.    2   6   black
  21382. 5.5
  21383.    3   7   brown
  21384. 5.5
  21385.    4   9   grey
  21386. 5.5
  21387.    5   2   orange
  21388. 5.5
  21389.    6   1   red
  21390. 5.5
  21391.    7   4   green
  21392. 5.5
  21393.    8   8   white
  21394. 5.5
  21395.    9   5   blue
  21396. 5.5
  21397. The colours are the colours on mine. They may differ between various
  21398. tracker balls. A mark 1 Archimedes mouse lead will also fit this
  21399. particular tracker ball but two leads need swapping round.
  21400. 5.5
  21401. Connectors 6 and 7, in my case red and brown, need to be changed over.
  21402. This can be accomplished with a needle by gently lifting the black
  21403. plastic clip above the connector with the needle whilst pulling gently
  21404. on the wire to be removed.
  21405. 5.5
  21406. December’s article was, I think, for a mark 1 AMX mouse. I have a later
  21407. AMX mouse which is the same design as the early Archimedes mouse and the
  21408. lead is a straight swap.
  21409. 5.5
  21410. Dave Morrell, Middlesbrough
  21411. 5.5
  21412. •   Elite Cheat − Here is program that will create a commander file for
  21413. use with Elite. It gives you the most needed items to get around a
  21414. little better than before, especially the docking computer, (most
  21415. welcome). When you have successfully loaded it in, use galaxy map to see
  21416. where to go, a little bonus is waiting: Front beam laser, rear beam
  21417. laser, large cargo bay (35 tons), docking computer, E.C.M. system, four
  21418. missiles.
  21419. 5.5
  21420. REM>:0.$.Elite_com
  21421. 5.5
  21422. REM Program by Scott Edwards
  21423. 5.5
  21424. REM 3-1-92
  21425. 5.5
  21426. REM It is important that you have
  21427. 5.5
  21428. REM the correct checksums on the
  21429. 5.5
  21430. REM right line, the program will
  21431. 5.5
  21432. REM inform you if you have a wrong line.
  21433. 5.5
  21434. MODE0:OFF
  21435. 5.5
  21436. DIM store% &1000
  21437. 5.5
  21438. checkcode%=38901:code$=“”
  21439. 5.5
  21440. line%=390:inc%=0
  21441. 5.5
  21442. FOR l%=0 TO 17
  21443. 5.5
  21444. FOR blk%=0 TO 15
  21445. 5.5
  21446. READ code$
  21447. 5.5
  21448. dat%=EVAL(“&”+code$)
  21449. 5.5
  21450. checksum%=checksum%+dat%
  21451. 5.5
  21452. ?(store%+inc%)=dat%
  21453. 5.5
  21454. PRINT dat%,~dat%
  21455. 5.5
  21456. inc%+=1
  21457. 5.5
  21458. NEXT
  21459. 5.5
  21460. READ checkcode%
  21461. 5.5
  21462. IF checksum%<>checkcode% THEN
  21463. 5.5
  21464. PRINT “You have a data byte incorrect at ”;line%
  21465. 5.5
  21466. STOP
  21467. 5.5
  21468. ENDIF
  21469. 5.5
  21470. line%+=10:finalcheck%=checksum%
  21471. 5.5
  21472. checksum%=0
  21473. 5.5
  21474. NEXT
  21475. 5.5
  21476. IF finalcheck%=checkcode% THEN
  21477. 5.5
  21478. PRINT“You have a correct file for saving”
  21479. 5.5
  21480. REPEAT
  21481. 5.5
  21482. INPUT“Enter the commander name for your file  ”;A$
  21483. 5.5
  21484. UNTIL A$<>“”
  21485. 5.5
  21486. SYS“OS_File”,10,A$,&C87,,store%, store%+&11C
  21487. 5.5
  21488. ENDIF
  21489. 5.5
  21490. PRINT“Program is Finished,now run ELITE and use your new commander”
  21491. 5.5
  21492. END
  21493. 5.5
  21494. :
  21495. 5.5
  21496. REM Commander file for ELITE
  21497. 5.5
  21498. :
  21499. 5.5
  21500. DATA 16,B5,DC,72,DF,DD,20,C9,F2,3C, 54, EB,32,6F,EF,09,2244
  21501. 5.5
  21502. DATA E5,F9,61,E3,31,12,B8,70,85,F3, FE,A9,EB,11,02,DD,2439
  21503. 5.5
  21504. DATA 31,43,F2,80,D5,F6,81,FA,70,92, 9A, 72,B9,EB,FC,B9,2707
  21505. 5.5
  21506. DATA C9,B1,42,CE,85,DD,F6,7F,5D,00, D2,9A,92,D2,6F,FC,2553
  21507. 5.5
  21508. DATA B9,2F,F9,62,CF,B5,62,B8,7B,5E, 98,7E,AF,68,DC,AA,2413
  21509. 5.5
  21510. DATA DD,39,30,CD,40,D6,B5,EF,53,70, 9E,91,E9,99,EC,DB,2568
  21511. 5.5
  21512. DATA F1,2C,B1,50,C1,F5,4D,F7,EE,72, 97,52,A1,59,FC,A7,2558
  21513. 5.5
  21514. DATA FD,78,B2,CD,22,CA,AD,FF,54,7F, 3D,52,67,0A,66,D7,2204
  21515. 5.5
  21516. DATA F8,23,39,20,A2,B4,86,B4,6C,7D, 0B,1D,09,4A,D3,44,1663
  21517. 5.5
  21518. DATA D3,37,3F,07,0F,06,A6,63,23,E3, 1D,18,84,80,84,D4,1541
  21519. 5.5
  21520. DATA AA,8A,6B,10,8D,3B,39,43,EB,56, C6,B6,81,48,9F,1E,1846
  21521. 5.5
  21522. DATA 9A,77,2C,64,DC,BA,A5,49,10,CE, BD,17,33,EF,5E,D4,2091
  21523. 5.5
  21524. DATA A5,01,E8,E0,8D,12,71,30,6B,53, F9,F5,E9,47,02,B2,2110
  21525. 5.5
  21526. DATA 91,37,22,7D,F1,F6,A4,7A,DC,C2, 9C,8A,B5,FE,7C,CB,2602
  21527. 5.5
  21528. DATA 38,E2,DA,CF,49,E0,80,BF,CF,20, 6A,6E,E7,24,69,39,2207
  21529. 5.5
  21530. DATA 7E,74,89,36,A6,69,0B,36,B7,A9, 33,46,99,DD,35,07,1676
  21531. 5.5
  21532. DATA 34,D0,D6,93,1D,CF,F0,9B,03,0F, 61,EC,D6,13,E8,71,2181
  21533. 5.5
  21534. DATA 48,83,01,29,F7,5A,82,75,32,A8, BA,41,00,00,00,00,1298
  21535. 5.5
  21536. S Edwards, Stourbridge
  21537. 5.5
  21538. •   First Word Plus 2 − In Archive 3.12 someone was bemoaning the lack of
  21539. a key that would toggle insert mode on and off. In fact the <insert> key
  21540. itself will do just that.
  21541. 5.5
  21542. Robert Fuller, Basingstoke.
  21543. 5.5
  21544. •   Lemmings Passwords − For all you bald headed insomniacs....
  21545. 5.5
  21546. Taxing Level    
  21547. 5.5
  21548. 02 Justforyou   03 Runandflee   04
  21549. Doortodoor
  21550. 5.5
  21551. 05 Stillalive   06 Fixedmyfix   07
  21552. Anurebevan
  21553. 5.5
  21554. 08 Helpmemate   09 Drinknwine   10
  21555. Tenpercent
  21556. 5.5
  21557. 11 Stickuptwo   12 DiginDelve    13
  21558. Hisbadluck
  21559. 5.5
  21560. 14 Teensforth   15 Teensfifth   16
  21561. Notsosweet
  21562. 5.5
  21563. 17 Driveukcar   18 Votesforme   19
  21564. Tenstonine
  21565. 5.5
  21566. 20 Doublesten   21 Lockandkey   22
  21567. Twoelevens
  21568. 5.5
  21569. 23 Justforme   24 Lemmingmore   25
  21570. Jiveanjive
  21571. 5.5
  21572. 26 Lemsinafix   27 Lemsheavon   28
  21573. Gardengate
  21574. 5.5
  21575. 29 Startowine   30 Fivexsixis
  21576. 5.5
  21577. Mayhem Level    
  21578. 5.5
  21579. 02 Nearlygone   03 Spendspree   04
  21580. Onthefloor
  21581. 5.5
  21582. 05 Uncleclive   06 Clogclicks   07
  21583. Difference
  21584. 5.5
  21585. 08 Waitanwait   09 Eatanddine   10
  21586. Tentontess
  21587. 5.5
  21588. 11 Binisthree   12 Twotimesix   13
  21589. Returntome
  21590. 5.5
  21591. 14 Twicelucky   15 Nineandsix   16
  21592. Charitynum
  21593. 5.5
  21594. 17 Stillyoung   18 Comesofage   19
  21595. Olderstill
  21596. 5.5
  21597. 20 Numbtwenty   21 Olderlemms   22
  21598. Lemminduck
  21599. 5.5
  21600. 23 Soonbefree   24 Lemmsstore   25
  21601. Lemmsdrive
  21602. 5.5
  21603. 26 Yourinafix   27 Lemtodevon   28Twostoplay
  21604. 5.5
  21605. 29 Oneafterme   30 Lemmgfinal
  21606. 5.5
  21607. Robin Jefferies,  West Sussex.
  21608. 5.5
  21609. •   Improving Logistix (v0.01) RISC-OS compatibility − As anyone who has a
  21610. copy of Logistix will be aware, the RISC-OS support files to “upgrade”
  21611. the package to run from the desktop do nothing except allow the
  21612. application to be launched from the desktop! (I do not know if there was
  21613. ever a subsequent release of Logistix since v0.01 − I assume not, as I
  21614. was a registered owner and was never informed of any update.)
  21615. 5.5
  21616. In the case of old programs upgraded through the support disk, it’s
  21617. likely that some of the software houses did not have any real experience
  21618. of RISC-OS before the deadline date for the disk, so they may be excused
  21619. for the minimal level of compliance. (Acorn could not be considered to
  21620. have had any such excuse, but Logistix wasn’t actually written by them,
  21621. they only marketed it for Grafox.)
  21622. 5.5
  21623. The directory structure of the “upgraded” !Logistix was rather messy,
  21624. and all pathnames were specific to the directory structure, therefore
  21625. not transportable from drive 0 and the $ directory. This makes it
  21626. impossible to install on a hard disk without some editing. The major
  21627. annoyance in using the application is that clicking on Logistix data
  21628. files does nothing except give an error message! Files can only be
  21629. loaded by first loading Logistix, then keyboarding through the menu
  21630. system.
  21631. 5.5
  21632. The application directory can be arranged far better for RISC-OS by the
  21633. movement of a few files, and a little editing with !Edit. Dealing with
  21634. the directory structure first...
  21635. 5.5
  21636. All that the user wants to see of Logistix is the !Logistix application
  21637. icon which can be double clicked on to start it. Your !System directory
  21638. should contain a directory called Modules which contains the latest
  21639. version of the FPE, Clib, Colours etc. As upgraded after using the
  21640. support disk, a Logistix floppy disk contains the following directories:
  21641. 5.5
  21642. !System − A system folder which still requires updating with the RISC-OS
  21643. extras disk for the newer versions of Clib etc. (The latest Floating
  21644. Point Emulator (2.80) should also be placed in the Modules directory
  21645. inside this.)
  21646. 5.5
  21647. !Logistix − The RISC-OS startup directory containing the !Boot,!Run and
  21648. !Sprites files.
  21649. 5.5
  21650. Logistix − The actual Logistix program files and a (now outdated)
  21651. Floating Point Emulator.
  21652. 5.5
  21653. MAKE A BACKUP COPY OF YOUR DISK then, using the backup copy...
  21654. 5.5
  21655. Move the Logistix directory into the !Logistix directory.
  21656. 5.5
  21657. Copy the latest FPEmulator you have into the !System.Modules directory.
  21658. 5.5
  21659. (You may then delete the copy in the Logistix directory.)
  21660. 5.5
  21661. Using !Edit, edit the !Logistix.!Boot file to contain the following
  21662. lines:
  21663. 5.5
  21664. | !Boot for !Logistix version 0.01
  21665. 5.5
  21666. | Updated to allow autoload
  21667. 5.5
  21668. | (This is an OBEY file)
  21669. 5.5
  21670. Set Logi$Dir <Obey$Dir>
  21671. 5.5
  21672. IconSprites <Logi$Dir>.!Sprites
  21673. 5.5
  21674. Set File$Type_DFF Logistix
  21675. 5.5
  21676. Set Alias$@RunType_DFF Obey <Logi$Dir>.InitFile %%*0
  21677. 5.5
  21678. Edit the !Run file so that it becomes:
  21679. 5.5
  21680. | !Run for !Logistix version 0.01
  21681. 5.5
  21682. | with better RISC-OS compatability
  21683. 5.5
  21684. | (This is an OBEY file)
  21685. 5.5
  21686. IconSprites <Logi$Dir>.!Sprites
  21687. 5.5
  21688. WimpSlot -min 500k
  21689. 5.5
  21690. RMEnsure FPEmulator RMLoad <System$Path>Modules.FPEmulator
  21691. 5.5
  21692. Dir <Logi$Dir>.Logistix
  21693. 5.5
  21694. LGX
  21695. 5.5
  21696. The use of “<System$Path>Modules.” to reach the FPEmulator and setting
  21697. up the system variable <Logi$Dir> allow proper transportability of the
  21698. application, and it can now quite happily be installed anywhere in the
  21699. directory structure on a hard disk. Clicking on a data file causes RISC-
  21700. OS to check if a command has been matched to that file type. The system
  21701. variable Alias$@RunType _xxx has to be set up for files of the type in
  21702. question. If it has not been set up then you will get the error message
  21703. “No run action specified for this file type”. This is exactly what
  21704. happens with Logistix and similar applications written before (and even
  21705. since!) RISC-OS made its appearance. The addition of the line Set
  21706. Alias$@RunType_ DFF Obey <Logi$Dir>.InitFile %%*0 in the !Boot file
  21707. corrects the original omission, along with the following Obey file.
  21708. 5.5
  21709. The file described here can be used with most applications which require
  21710. keyboard input to load files, the exceptions being those which clear the
  21711. keyboard buffer on start up. In principle, the method is simple. An Exec
  21712. file is used containing the commands or keystrokes to be executed as
  21713. though they had been entered at the keyboard. Due to the fact that only
  21714. Obey files can process the Obey$Dir system variable, it could get a
  21715. little bit confusing.
  21716. 5.5
  21717. One way around this is from an Obey file:
  21718. 5.5
  21719. 1. Collect the startup pathname from RISC-OS and put it in a system
  21720. variable.
  21721. 5.5
  21722. 2. Using an Obey file, create an Exec file (by using Spool and Echo)
  21723. containing all the commands which require to be carried out to start the
  21724. application and set it up for a load operation.
  21725. 5.5
  21726. 3. Echo the system variable containing the full pathname into the Exec
  21727. file.
  21728. 5.5
  21729. 4. Exec the file which has just been created.
  21730. 5.5
  21731. There is one small problem. When trying to write to the FIRST file being
  21732. created by a *Spool operation, extraneous data flows into it before the
  21733. data! A dummy file is spooled first to get rid of this before the real
  21734. file is created.
  21735. 5.5
  21736. Using !Edit, create a new Obey file as follows, (You may miss out the
  21737. comment lines, but please leave in the fact that it is public domain and
  21738. attributed to me.)
  21739. 5.5
  21740. | “InitFile” − Public Domain by
  21741. 5.5
  21742. | D.Potter 26/6/90
  21743. 5.5
  21744. | Allows keyboard emulated loading
  21745. 5.5
  21746. | by double-clicking on a data file
  21747. 5.5
  21748. | in the RISC-OS desktop.
  21749. 5.5
  21750. | Intended in this version for
  21751. 5.5
  21752. | Logistix, but the principal will
  21753. 5.5
  21754. | work for other programs which do
  21755. 5.5
  21756. | not clear the keyboard buffer at
  21757. 5.5
  21758. | startup.
  21759. 5.5
  21760. | This is an Obey File. (Exec files
  21761. 5.5
  21762. | do not allow passing of system
  21763. 5.5
  21764. | parameters.) To pass actual
  21765. 5.5
  21766. | commands to Logistix, (or any
  21767. 5.5
  21768. | similar application), an Exec file
  21769. 5.5
  21770. | must be used.
  21771. 5.5
  21772. | The Exec file is built by this
  21773. 5.5
  21774. | file, including the full path for
  21775. 5.5
  21776. | the startup file that was clicked
  21777. 5.5
  21778. | on.
  21779. 5.5
  21780. | The !Boot file for app. must be an
  21781. 5.5
  21782. | Obey file containing the commands
  21783. 5.5
  21784. |      Set Logi$Dir <Obey$Dir>
  21785. 5.5
  21786. |      Set Alias$@RunType_xxx Obey <Logi$Dir>.InitFile %%*0
  21787. 5.5
  21788. | (As well as any other commands
  21789. 5.5
  21790. | already there)
  21791. 5.5
  21792. | Where xxx is the filetype for the
  21793. 5.5
  21794. | data file (DFF for Logistix).
  21795. 5.5
  21796. | Logi$Dir will be the directory
  21797. 5.5
  21798. | where the application resides, and
  21799. 5.5
  21800. | is automatically set up when the
  21801. 5.5
  21802. | application’s !Boot is first seen.
  21803. 5.5
  21804. | Note : the | characters at the
  21805. 5.5
  21806. | start of the above lines should
  21807. 5.5
  21808. | NOT be in the !Boot file!
  21809. 5.5
  21810. |
  21811. 5.5
  21812. | Put the pathname information in
  21813. 5.5
  21814. | temporary system variable Lload$
  21815. 5.5
  21816. Set Lload$ %*0
  21817. 5.5
  21818. | Clear extraneous data which
  21819. 5.5
  21820. | appears when a file is written to
  21821. 5.5
  21822. | at this stage by dummy spooling.
  21823. 5.5
  21824. | This data is not needed here any
  21825. 5.5
  21826. | more!
  21827. 5.5
  21828. Spool <Logi$Dir>.!LoadFile
  21829. 5.5
  21830. Echo <Lload$>
  21831. 5.5
  21832. spool
  21833. 5.5
  21834. | Now create the actual Exec file
  21835. 5.5
  21836. | which will run LGX and issue the
  21837. 5.5
  21838. | commands.
  21839. 5.5
  21840. Spool <Logi$Dir>.!LoadFile
  21841. 5.5
  21842. Echo || !LoadFile − Transient program built by InitFile
  21843. 5.5
  21844.  (PD) by D.Potter 1990
  21845. 5.5
  21846. Echo *Run <Logi$Dir>.!Run
  21847. 5.5
  21848. |
  21849. 5.5
  21850. | Send the Logistix load sequence −
  21851. 5.5
  21852. | Note : NO SPACES in the sequence!
  21853. 5.5
  21854. | /L = load, L= Logistix data file,
  21855. 5.5
  21856. | <Lload$>= Full filename,
  21857. 5.5
  21858. | A= All to be loaded  (You might
  21859. 5.5
  21860. | want to use a different load
  21861. 5.5
  21862. | sequence)
  21863. 5.5
  21864. | (Where a return is required such
  21865. 5.5
  21866. | as after the filename here,
  21867. 5.5
  21868. | simply start a new Echo statement
  21869. 5.5
  21870. | for the next command.)
  21871. 5.5
  21872. |
  21873. 5.5
  21874. Echo /LL<Lload$>
  21875. 5.5
  21876. Echo A
  21877. 5.5
  21878. |
  21879. 5.5
  21880. | Close the file
  21881. 5.5
  21882. Spool
  21883. 5.5
  21884. |
  21885. 5.5
  21886. | Set its file type
  21887. 5.5
  21888. SetType <Logi$Dir>.!LoadFile Command
  21889. 5.5
  21890. |
  21891. 5.5
  21892. | Lose the temporary system variable
  21893. 5.5
  21894. UnSet Lload$
  21895. 5.5
  21896. |
  21897. 5.5
  21898. | And run the file just created!
  21899. 5.5
  21900. Exec <Logi$Dir>.!LoadFile
  21901. 5.5
  21902. Save the above file as InitFile in the !Logistix directory.
  21903. 5.5
  21904. Now click on the !Boot file in the !Logistix directory to set the system
  21905. variables. (You won’t always have to do this, as the !Boot file will be
  21906. run the first time you open the directory containing !Logistix. You only
  21907. need to do it at this time because you have been messing about with the
  21908. files, and the !Boot file may be different now than when it was last
  21909. run.) Clicking on any Logistix data file will now load Logistix and the
  21910. data file ready for use. You will still have to set up any default
  21911. prefixes etc.
  21912. 5.5
  21913. It is not possible to do this automatically with a simple file such as
  21914. the above, because the full pathname would require to be split up to
  21915. provide the path to your file directory minus the filename. i.e. you
  21916. would require string handling facilities such as in Basic.
  21917. 5.5
  21918. Note: The Logistix application itself still sets the CSD to the Logistix
  21919. directory within the !Logistix application directory. Implementing a
  21920. fully RISC-OS compatible version would require rewriting of the actual
  21921. coded LGX file, which is not possible without both the source code file
  21922. and the full approval of both Acorn and Grafox.
  21923. 5.5
  21924. Other applications requiring a parameter block in memory − Other
  21925. programs (in Basic) written before RISC-OS, which will autoload a data
  21926. file at startup if a parameter block is set up in memory, could be made
  21927. to auto load using a version of the following routine. Again, this
  21928. builds an exec file which is run in Basic, using simple string handling
  21929. to split off the filename from the full pathname.
  21930. 5.5
  21931. This example file was built to implement auto loading under RISC-OS on
  21932. an old BBC program which was written for DFS, and without re-writing
  21933. could not handle full pathnames, therefore it includes a line to set the
  21934. current directory to the application directory.
  21935. 5.5
  21936. Note: This particular version works due to Basic being selected during
  21937. the execution of the Exec file and the memory accessible to both the
  21938. file and the program is that assigned by the selection of Basic. Any
  21939. other programs (e.g. integrated packages) which are to use the shared
  21940. parameter block must (obviously) use the same memory, so must not move
  21941. out of Basic (return to the desktop) in between the programs, but simply
  21942. chain each other.
  21943. 5.5
  21944. This actual file will be irrelevant to most users, but it does show a
  21945. method of getting around the conversion of system variables to actual
  21946. data therefore easing the amount of work involved in conversion of BBC B
  21947. and Master programs to Archimedes. I know that re-writing the appli
  21948. cations might be more sensible, but this is aimed at people who know how
  21949. an application works, but didn’t write it in the first place!
  21950. 5.5
  21951. |    “Autoload”
  21952. 5.5
  21953. | A Customised version of “InitFile”
  21954. 5.5
  21955. | −  Public Domain by D.Potter
  21956. 5.5
  21957. |                             7/7/90
  21958. 5.5
  21959. |       —— Information ——-
  21960. 5.5
  21961. | Allows parameter block loading by
  21962. 5.5
  21963. | double-clicking on a data file
  21964. 5.5
  21965. | in the RISC-OS desktop.
  21966. 5.5
  21967. | Intended in this version for the
  21968. 5.5
  21969. | upgrade of an old BBC/Master
  21970. 5.5
  21971. | program called Datbase, but the
  21972. 5.5
  21973. | principal should work for other
  21974. 5.5
  21975. | Basic programs which when started
  21976. 5.5
  21977. | up check a parameter block in
  21978. 5.5
  21979. | memory, and if found to be valid,
  21980. 5.5
  21981. | will load the file referred to in
  21982. 5.5
  21983. | the block.
  21984. 5.5
  21985. | eg. Old “Integrated” suites of
  21986. 5.5
  21987. | programs which allow files to be
  21988. 5.5
  21989. | left as active or current for each
  21990. 5.5
  21991. | program in the suite.
  21992. 5.5
  21993. |
  21994. 5.5
  21995. | This is an Obey File.
  21996. 5.5
  21997. | An Exec file is built by this file
  21998. 5.5
  21999. | including the filename for the
  22000. 5.5
  22001. | startup file that was double
  22002. 5.5
  22003. | clicked on.
  22004. 5.5
  22005. | The !Boot file for app. must be an
  22006. 5.5
  22007. | Obey file containing the commands
  22008. 5.5
  22009. |       Set DatBa$Dir <Obey$Dir>
  22010. 5.5
  22011. |       Set Alias$@RunType_xxx Obey <DatBa$Dir>.AutoLoad %%*0
  22012. 5.5
  22013. | (As well as any other commands
  22014. 5.5
  22015. | already there)
  22016. 5.5
  22017. | Where xxx is the filetype for the
  22018. 5.5
  22019. | data file. (DatBa$Dir will be set
  22020. 5.5
  22021. | to the directory where the program
  22022. 5.5
  22023. | & this file reside when the !Boot
  22024. 5.5
  22025. | file is run)
  22026. 5.5
  22027. |
  22028. 5.5
  22029. | Put the full pathname information
  22030. 5.5
  22031. | in system variable DBload$
  22032. 5.5
  22033. Set DBload$ %*0
  22034. 5.5
  22035. | Clear extraneous data which
  22036. 5.5
  22037. | appears when a file is written to
  22038. 5.5
  22039. | at this stage by dummy spooling.
  22040. 5.5
  22041. | This data is not needed here
  22042. 5.5
  22043. | anymore!
  22044. 5.5
  22045. Spool <DatBa$Dir>.!LoadFile
  22046. 5.5
  22047. Echo <DBload$>
  22048. 5.5
  22049. spool
  22050. 5.5
  22051. |
  22052. 5.5
  22053. | Now create the actual Exec file
  22054. 5.5
  22055. | which will run the program and
  22056. 5.5
  22057. | load file.
  22058. 5.5
  22059. Spool <DatBa$Dir>.!LoadFile
  22060. 5.5
  22061. Echo || !LoadFile − Transient program built by AutoLoad
  22062. 5.5
  22063.  (PD) by D.Potter 1990
  22064. 5.5
  22065. Echo *Basic
  22066. 5.5
  22067. Echo REM this particular application requires the CSD to be it -
  22068. 5.5
  22069. Echo *Dir <DatBa$Dir>
  22070. 5.5
  22071. Echo REM The startup parameter block for this application
  22072. 5.5
  22073.  is at &F000, with
  22074. 5.5
  22075. Echo REM the filename held at &F100, any conditions for
  22076. 5.5
  22077.  printing at &F110,
  22078. 5.5
  22079. Echo REM the record number to display at start up held in R%,
  22080. 5.5
  22081. Echo REM and HIMEM held in H%
  22082. 5.5
  22083. Echo HIMEM=&F000
  22084. 5.5
  22085. Echo H%=&F000
  22086. 5.5
  22087. |    Echoing a system variable
  22088. 5.5
  22089. |    causes it to be converted to
  22090. 5.5
  22091. |    the real data.
  22092. 5.5
  22093. Echo F$=“<DBload$>”
  22094. 5.5
  22095. Echo REM Split off the actual filename itself (This
  22096. 5.5
  22097.  particular example is
  22098. 5.5
  22099. Echo REM for conversion of a BBC B/
  22100. 5.5
  22101. Master program which
  22102. 5.5
  22103.  has restricted
  22104. 5.5
  22105. Echo REM filename length, and therefore can’t handle
  22106. 5.5
  22107.  full pathnames)
  22108. 5.5
  22109. Echo REPEAT:F$=MID$(F$,INSTR(F$,“.”)+1):UNTIL INSTR(F$,“.”)=0
  22110. 5.5
  22111. Echo $&F100=F$ : $&F110=“”:R%=1
  22112. 5.5
  22113. Echo MO.12
  22114. 5.5
  22115. Echo CHAIN“DATBASE”
  22116. 5.5
  22117. |
  22118. 5.5
  22119. | Where a return is required after a
  22120. 5.5
  22121. | command such as L for load, simply
  22122. 5.5
  22123. | start a new Echo statement for the
  22124. 5.5
  22125. | next command − a return will be
  22126. 5.5
  22127. | put in.
  22128. 5.5
  22129. |
  22130. 5.5
  22131. | Close the file
  22132. 5.5
  22133. Spool
  22134. 5.5
  22135. |
  22136. 5.5
  22137. | Set its file type
  22138. 5.5
  22139. SetType <DatBa$Dir>.!LoadFile Command
  22140. 5.5
  22141. |
  22142. 5.5
  22143. | And do it!
  22144. 5.5
  22145. Exec <DatBa$Dir>.!LoadFile
  22146. 5.5
  22147. Douglas Potter, Glasgow
  22148. 5.5
  22149. •   Oak SCSI on A5000 − Using the ‘free’ menu option on a SCSI disc on the
  22150. iconbar doesn’t make use of the new Free module in the RISC-OS 3 ROM. To
  22151. correct this, include the following line in your hard disc boot file :
  22152. 5.5
  22153. Set Alias$Free ShowFree -FS scsi %0
  22154. 5.5
  22155. That’s all there is to it. Now, whenever you select ‘free’ from the SCSI
  22156. menu, a Free window pops up. The ‘%0’ picks up the device (disc drive)
  22157. name. Should you then subsequently wish to use Free from the command
  22158. line, use :
  22159. 5.5
  22160. %Free [<disc spec>]
  22161. 5.5
  22162. Typing ShowFree at the command line (with no parameters) reports the
  22163. command syntax.
  22164. 5.5
  22165. David Lenthall, London
  22166. 5.5
  22167. •   Refilling ink cartridges − We have, in past issues, published comments
  22168. about refilling inkjet cartridges with various types of ink. Tord
  22169. Eriksson sent in another such comment a while ago but I didn’t publish
  22170. it. He now writes....
  22171. 5.5
  22172. Remember my recommending using water or fountain pen ink to keep your
  22173. printer going when your ink supply is gone? You didn’t publish it
  22174. (sensibly enough!) and I ran into deep trouble with it. I thought the
  22175. printhead was a goner (and messed it up further...), as the printer
  22176. didn’t work properly. After buying a new £100 head, with no improvement,
  22177. I found out that the reason you shouldn’t refill the cartridges is that
  22178. air easily leaks into the paint container if you disconnect it many
  22179. times (as when injecting ink) because the membrane gets worn. This means
  22180. that suction isn’t up to specification and you get uneven paint
  22181. delivery.
  22182. 5.5
  22183. You may publish this as a warning − water does not harm a Canon BJ-what-
  22184. ever printer − but the side-effects can be very troublesome! I could
  22185. have spent the £100 on something more sensible!!!    Tord Eriksson,
  22186. Sweden  A
  22187. 5.5
  22188. Impression Hints & Tips
  22189. 5.5
  22190. •   Function key changes (cont’d) − In addition to Michael Ben-Gershon’s
  22191. excellent hint in Archive 5.2, p.12: Why not go the whole way and put
  22192. all those styles (like those fonts you use regularly to enhance your
  22193. texts) into your Impression default document, after you have assigned a
  22194. function key to each of them?
  22195. 5.5
  22196. There are quite a lot of possibilities; in addition to those fields on
  22197. the function key strip that are quite empty, you can remove the default
  22198. styles you may not need (like hanging indent) and if there are some of
  22199. those ten scales offered which you never use, you can simply take over
  22200. those keys for your own styles.
  22201. 5.5
  22202. You will find that the editable field which allows you to define a
  22203. keyboard short cut is slightly unusual: It accepts only certain entries
  22204. (function keys, <Shift>, <Return>,..), and it is not necessary to delete
  22205. the existing content with <Ctrl-U> − just click in the box, enter the
  22206. new combination and click on OK. (Don’t press <Return>, because that
  22207. simply means that the short cut for your style is the Return key!)
  22208. 5.5
  22209. Jochen Konietzko, Köln, Germany
  22210. 5.5
  22211. • Sprite files in Impression − Kevin Beales told us (Archive 5.4 p5)
  22212. about Impression’s ability to scale pictures in Draw format. In this
  22213. context, he forgot to mention something even more remarkable: Impression
  22214. can also scale sprites! This works in exactly the same way as he
  22215. described.
  22216. 5.5
  22217. Of course, due to the well known problems of jagged edges/loss of
  22218. detail, you shouldn’t scale up or down too much; but if you have a
  22219. sprite that is just slightly too big or too small for its intended
  22220. place, then this feature of Impression is certainly extremely useful!
  22221. 5.5
  22222. Jochen Konietzko, Köln, Germany
  22223. 5.5
  22224. •   Illustrated Impression documents − I often include sprite and draw
  22225. files in my Impression documents (for test papers and the like).
  22226. 5.5
  22227. One minor problem is that one can’t really edit those graphic frames in
  22228. an Impression document. Therefore, to have the corresponding files
  22229. always on hand, I save them into the document’s directory (after opening
  22230. a window on this directory by <shift>-double clicking).
  22231. 5.5
  22232. This is one more reason for buying Compression: A typical sketch I make
  22233. with DrawPlus is reduced from about 6k to about 2 kbytes. A screen shot
  22234. made of an oscilloscope application I use takes up 100 kbytes; Compres
  22235. sion reduces this to just about 5k bytes (!). This means that even
  22236. pictures that appear in several documents don’t clog up the hard disk
  22237. too much, if you always save them together with the documents they
  22238. appear in.
  22239. 5.5
  22240. (Surely, though, the Draw files are already in the Impression document
  22241. directory? Why not edit them directly from there? Two drawbacks, I
  22242. suppose... you don’t know which file is which because they have names
  22243. like Story2 and Story4 (but you could identify them if you have full
  22244. info set in the filer window because of their size) and secondly the
  22245. changes to the Drawfiles are only displayed then next time you load the
  22246. Impression document. Ed.)
  22247. 5.5
  22248. (By the way: Can anyone tell me whether this hint will become obsolete
  22249. once Computer Concepts’ much vaunted Impulse II will be available, that
  22250. is, whether you will then be able to open a graphic file saved somewhere
  22251. by clicking on a graphic frame in an Impression document?)
  22252. 5.5
  22253. Jochen Konietzko, Köln, Germany
  22254. 5.5
  22255. •   Tiny left hand margin − I often wondered why the default document on
  22256. the Impression disc has a left hand margin set on the base style of a
  22257. couple of millimetres. Because of my sense of symmetry, I reduced that
  22258. to zero as soon as I started using Impression. Surely, if you create a
  22259. new master page with, say, 10cm margins, you don’t want the lefthand
  22260. margin to be 10.2cm?
  22261. 5.5
  22262. Suddenly it dawned on me... yes, I know I’m slow... the reason for the
  22263. small lefthand margin is to make it easier to position the cursor to the
  22264. left of the first character on a line. If, as I do, you have zero margin
  22265. in the base style, you’ve got to judge the mouse cursor fairly accu
  22266. rately otherwise it goes onto the paper margin and turns into a hand.
  22267. Well, yer pays yer money... but I think I’ll stay as I am. I have too
  22268. many documents to change them all. Ed.
  22269. 5.5
  22270. •   Impression speed users’ tips − I find that if you can get into the
  22271. habit of using <adjust> reverse scrolling, it really does save time,
  22272. especially when I am laying out the magazine and the screen is cluttered
  22273. with windows. Just press <select> to scroll down and switch quickly to
  22274. <adjust> to go back up again without having to move the mouse and locate
  22275. the other end of the scroll bar − which could be under another window
  22276. anyway.
  22277. 5.5
  22278. Also, <adjust> can be extremely useful, again with a cluttered screen,
  22279. for moving windows whilst keeping them where they are relative to the
  22280. other documents. It takes practice, but it speeds things up in the long
  22281. run. Ed.  A
  22282. 5.5
  22283.  
  22284. Hints and Tips
  22285. 5.6
  22286. •   Alt key problems − (I think I’ll have to write this in six-foot high
  22287. letters. We’ve said it several times, but people keep missing out on
  22288. it.) If your <alt>-keypad numbers don’t give the special characters you
  22289. think they should, type *UNPLUG and you’ll probably find that someone or
  22290. something has unplugged the InternationalKeyboard module. If so, do an
  22291. RMREINIT InternationalKeyboard and all will be well. Ed.
  22292. 5.6
  22293. •   Copy key use − I had not realised until recently that the copy key has
  22294. the function of “delete right” (as it does in Impression) in most RISC-
  22295. OS applications.
  22296. 5.6
  22297. •   Floppy backup – (I know it’s obvious but...) On a single floppy disc
  22298. machine, if you want to backup up floppy discs in one chunk, i.e.
  22299. instead of having to take the discs in and out twice, call up the task
  22300. manager and increase the “Next” memory allocation to 800k or more. If
  22301. you don’t, it loads 640k into memory and copies that and then copies the
  22302. last 160k separately.
  22303. 5.6
  22304. •   External floppy drives on A5000 − There seems to be some concern and
  22305. confusion over connecting extra floppy drives to the A5000 and over the
  22306. fact that ADFS treats the drives in a different way from previous
  22307. Archimedes computers. Let me try to explain.
  22308. 5.6
  22309. The A5000 motherboard can access two internal floppy drives and two
  22310. external drives. However, many modern 3½“ drives can only be configured
  22311. as drive 0 or 1. Thus to allow a full complement of four drives, drive
  22312. selections 2 and 3 are transformed into 0 and 1 but on a separate ribbon
  22313. cable (as in a PC).
  22314. 5.6
  22315. Here is the problem: If one internal drive is fitted (physical drive 0/
  22316. 1) and an external drive is added (addressed as drive 3), then to access
  22317. the external drive you must ‘*configure floppies 4’, with the result
  22318. that you have two useless floppy drive icons!
  22319. 5.6
  22320. The solution that Acorn has is: Logical to physical drive mapping,
  22321. whereby ADFS can be configured with two floppies but would access
  22322. physical drive 3 when requested to read from logical drive 1. In order
  22323. to achieve this, ADFS must determine which physical drives are present.
  22324. This is achieved after reset (or rmreinit) by performing a ‘restore’
  22325. operation on each physical drive and then testing for a track 0
  22326. indication from a functional drive. The following table depicts a
  22327. typical example:
  22328. 5.6
  22329.      Physical Drive   Present    ADFS drive Nº
  22330. 5.6
  22331.    0   −   −
  22332. 5.6
  22333.    1   Y   :0
  22334. 5.6
  22335.    2   −   −
  22336. 5.6
  22337.    3   Y   :1
  22338. 5.6
  22339. This has a benefit for production by permitting the single internal
  22340. drive to be physical drive 1, which is the default for the PC world, and
  22341. hence not requiring link changes. Note that the 82C710 controller fitted
  22342. to the A5000 has 48mA sink capability and therefore does not require a
  22343. buffer board to operate with 5¼“ drives fitted with 150R pullup
  22344. resistors.
  22345. 5.6
  22346. Drive mapping was the main reason for accessing the floppy after a
  22347. reset, but once this approach was adopted, several other features were
  22348. possible.
  22349. 5.6
  22350. (1) 40 track drive detection. MultiFS allows 40 track discs to be read
  22351. in 80 track drives but, if a real 40 track drive is fitted, the double
  22352. stepping mode is inhibited. This test is performed on all physical
  22353. drives detected and works by first seeking to track 44 (a 40 track drive
  22354. will block at track 40, 41 or 42) and then seeking to track 2 (42 step
  22355. pulses). A 40 track drive will indicate track 0 at completion. Thus, if
  22356. you have a 40/80 switchable drive, you should type ‘*rmreinit ADFS’
  22357. after changing mode to ensure ADFS knows about the change.
  22358. 5.6
  22359. (2) During shipping, some floppy drives can have their heads shocked
  22360. beyond track 0 (negative track number). The 40 track drive detection
  22361. scheme ensures these drives will be recalibrated correctly.
  22362. 5.6
  22363. (3) If you ‘*configure’ too many floppies, ADFS will only install the
  22364. number detected. Conversely if you ‘*configure’ too few drives, ADFS
  22365. will not use the excess physical drives (the physically greater drive
  22366. numbers will be ignored). Lastly, if the configured floppies is 0 then
  22367. ADFS will not attempt to select any floppies.
  22368. 5.6
  22369. If you have configured the correct number of floppies, the extra time
  22370. spent ‘booting’ should normally be less than 250ms, that is 80 x 3ms
  22371. step pulses to detect a 40 track drive plus the time to initially
  22372. restore the head. Note that a configured 12ms step time is now trans
  22373. lated on an A5000 to 25ms to allow for very old/slow 40 track 5¼“ drives
  22374. sometimes found on prehistoric Beebs.
  22375. 5.6
  22376. I think this should explain the different behaviour of ADFS on A5000.
  22377. (Could this also explain why the A5000 floppies seem slow compared to my
  22378. A540? Ed) However, if you are trying to connect 5¼“ drives to the A5000,
  22379. one other factor needs to be taken into account. Unless they are
  22380. modified, 5¼” drives cannot be mixed with 3½“ drives on the same ribbon
  22381. cable because of differences in pin out of the ‘disc changed’ and
  22382. ‘ready’ signals. To work correctly on the internal drive connector, pin
  22383. 34 must present the ‘disc changed’ signal (or be disabled) and pin 2
  22384. carries the density select from the FDC.
  22385. 5.6
  22386. Therefore connect the 5¼“ drive on the external (middle) socket and make
  22387. the following link changes to the A5000:
  22388. 5.6
  22389. LK18 (north and west of socket) in the West position (viewed from front
  22390. of m/c); LK19 (north and east of socket) should be removed (park the
  22391. jumper on the centre pin only); LK21 (south and west of socket) should
  22392. be removed (park the jumper on either pin).
  22393. 5.6
  22394. These links only affect the external socket. To give the full informa
  22395. tion on it.
  22396. 5.6
  22397. LK18 selects logic hi (west) or logic lo (east) for the high density
  22398. signal from the FDC
  22399. 5.6
  22400. LK19 selects ‘density’ to drive (west) or ‘disk changed’ from drive
  22401. (east) or neither (removed) on pin 2 of drive interface
  22402. 5.6
  22403. LK21 enables (jumper fitted) the disc changed signal from pin 34 of the
  22404. drive interface.
  22405. 5.6
  22406. Your drive should then be configured as drive 0 or 1, remembering to
  22407. *configure floppies 2
  22408. 5.6
  22409. The above information was culled from a bulletin board by Brian Debenham
  22410. of Chelmsford. One of our other subscribers got some help from Steve
  22411. Picton at IFEL who referred him to pages 1-23 and 1-26 in the A5000
  22412. Technical Reference Manual and included a useful table for link changes
  22413. as follows:
  22414. 5.6
  22415. Drive type   link 18   link 19  
  22416. link 21
  22417. 5.6
  22418. PC-AT 1M / 2M   1-2   2-3   1-2
  22419. 5.6
  22420. PS/2 1M / 2M   2-3   2-3   1-2
  22421. 5.6
  22422. older 1M types   *   1-2   2-
  22423. 3
  22424. 5.6
  22425. most 5¼ drives   *   don’t fit   2-
  22426. 3
  22427. 5.6
  22428.    * = either position or don’t fit at all
  22429. 5.6
  22430. It’s difficult to get at these links, so a pair of long nosed pliers is
  22431. extremely useful.  Bob Potter, Bath.
  22432. 5.6
  22433. •   Lemmings − Did you know that a ‘blocker’ can be released by hitting it
  22434. in the right place with a ‘digger’ and also by burrowing very closely
  22435. underneath with a ‘basher’?
  22436. 5.6
  22437. •   MS-DOS users − Even in CGA emulation, the latest emulator screen
  22438. updates can be very slow. However, some of the new utilities (like EDIT)
  22439. have a ‘switch’ to allow faster CGA updates so...
  22440. 5.6
  22441. EDIT MYFILE.TXT /G
  22442. 5.6
  22443. will edit the file with quicker screen updates (/G means “switch G”). In
  22444. true Archimedes style, HELP <command> now gives the syntax and meaning
  22445. of commands (about time, too!).  Paul Bamberger, Hinckley.
  22446. 5.6
  22447. •   !MultiFS bug (with PCEmulator 1.70)? − Those of your readers using the
  22448. latest version (1.70) of the PCEmulator on RISC-OS 2 may be interested
  22449. in the following problem which I found recently. I have reported it to
  22450. Acorn, but have not had response yet. I understand that users of RISC-OS
  22451. 3 need not use !MultiFS with the PCEmulator because of their different
  22452. disc handler, so they need not read further into this hint.
  22453. 5.6
  22454. Following the correspondence in Archive about how to shut down a hard
  22455. disc reliably (See Archive 5.1 p26 ‘The Engineer Speaks’.) I now type
  22456. *SHUTDOWN just before turning off the power on my A540. After loading
  22457. !MultiFS on the icon bar, and then quitting it again, I found that when
  22458. I typed *SHUTDOWN, sometimes it just hung, sometimes I got an error
  22459. message, something like “Address exception at &01889 CE0”, and then I
  22460. could do nothing until after resetting the Archimedes, (<ctrl-break>
  22461. would not work). After the reset, *SHUTDOWN normally worked as usual,
  22462. occasionally, I had to turn off the power to reset it.
  22463. 5.6
  22464. After a little research I found that when !MultiFS quits, it removes the
  22465. MultiFS module, but leaves MultiFS in the list of filing systems held by
  22466. ‘FileSwitch’. Thus when *SHUTDOWN is trying to shut down all filing
  22467. systems, it cannot cope with MultiFS as the module is no longer loaded.
  22468. 5.6
  22469. You can check which filing systems are known to ‘FileSwitch’ with the
  22470. following BASIC program:
  22471. 5.6
  22472.  10 REM >FScheck  test which filing
  22473. 5.6
  22474.  systems exist
  22475. 5.6
  22476.  20 PRINT“Number Name”
  22477. 5.6
  22478.  30 @%=6:DIM fsname% 20
  22479. 5.6
  22480.  40 FOR F%=3TO255
  22481. 5.6
  22482.  50 SYS “OS_FSControl”,33,F%,fsname% ,21
  22483. 5.6
  22484.  60 L%=−1:REPEAT:L%+=1
  22485. 5.6
  22486.  70 UNTIL fsname%?L%=0
  22487. 5.6
  22488.  80 IFL%>0 fsname%?L%=13:PRINTF%“ ” $fsname%
  22489. 5.6
  22490.  90 NEXT
  22491. 5.6
  22492. To make ‘FileSwitch’ forget about MultiFS use the program below:
  22493. 5.6
  22494.   10 REM >DelMultiFS  delete multifs filing system
  22495. 5.6
  22496.   90 REM  see whether MultiFS is still loaded, if not, exit
  22497. 5.6
  22498.  100 SYS “OS_FSControl”,13,“MultiFS” ,0 TO ,F%,T%
  22499. 5.6
  22500.  110 IF T%=0 END
  22501. 5.6
  22502.  120 REM  next line removes MultiFS
  22503. 5.6
  22504.  130 SYS “OS_FSControl”,16,“MultiFS”
  22505. 5.6
  22506.  140 END
  22507. 5.6
  22508. While reporting this problem to Acorn, they gave me a very helpful
  22509. statement of the essential differences between the various ways of
  22510. closing down a hard disc system, which I feel sure they will not mind my
  22511. passing on.
  22512. 5.6
  22513. *SHUTDOWN closes all open files on all filing systems, logs off all file
  22514. servers, causes hard discs to be parked.
  22515. 5.6
  22516. *DISMOUNT closes all files, unsets directories and parks the given disk
  22517. (The currently selected drive on the current filing system is assumed if
  22518. this command is given without specifying the disc.)
  22519. 5.6
  22520. *BYE closes all the files, unsets directories and parks the hard discs
  22521. on the currently selected filing system.
  22522. 5.6
  22523. So you see the engineer was quite right, they are different. It depends
  22524. what your current disc is, and only the *SHUTDOWN parks the disks on ALL
  22525. the filing systems.   Kate Crennell, Didcot.
  22526. 5.6
  22527. •   Mysterious error message from Hard Disc Companion II − In Archive Vol
  22528. 5.4 page 3 you described the new version of the program from Risc
  22529. Developments. I upgraded from my old version recently and found that the
  22530. new version does not allow comments in the ‘Ignore’ part of the file
  22531. used to specify which directories and files are not to be backed up. I
  22532. found this a very useful feature of the previous version, and I should
  22533. like any other users who regret its passing to join me in asking Risk
  22534. Developments to put this feature back as soon as possible.
  22535. 5.6
  22536. This is mildly annoying, but I found a more serious problem. The first
  22537. time I used the ‘Hard Disc Companion II’ it worked beautifully, but the
  22538. second time, it would not load onto the icon bar, instead I got the
  22539. usual ‘traffic sign’ warning window and a message “File not found at
  22540. line 49”. Neither the !Boot nor the !Run files had 49 lines in them. The
  22541. program is not written in Basic, so it has no line numbers. I eventually
  22542. found that since making my first full backup and trying to do the next
  22543. incremental backup, I had deleted one of the files which I had previ
  22544. ously said I wanted to ‘ignore’ in the ‘Choices’ file. Luckily, it is
  22545. possible to edit the ‘Choices’ file with !Edit, so I just took out that
  22546. line. I have reported this error to RISC Developments and they said they
  22547. hope to make the error message more informative and tell you the name of
  22548. the file which is missing.  Kate Crennell, Didcot.
  22549. 5.6
  22550. •   Paper for inkjets − I have a Hewlett Packard Deskjet 500 inkjet
  22551. printer. I have had great trouble finding good paper − the main problem
  22552. seems to be how absorbent the paper is; too absorbent and you will get
  22553. white patches in your black areas, but not absorbent and it will smudge
  22554. across the paper! If you go into most paper suppliers or printers, they
  22555. will be happy to give you various samples that you can try. Make sure
  22556. when you test the paper that you include very small text, thin and thick
  22557. straight lines at various angles, fine and thick curves, shading, large
  22558. black areas and bit mapped graphics. I have ended up using “Mustang
  22559. Copier − Long grain 80gsm” for my draft printing (as it is cheap − about
  22560. 0·5 pence per sheet) and Croxley Script 100gsm for quality work (this
  22561. works out at about 3 pence per sheet but is water marked and has a nice
  22562. feel to it). There is probably better paper available − I have only
  22563. tried about twenty types.  Paul Bamberger, Hinckley.
  22564. 5.6
  22565. •   Pandora’s Box problems? − There seems to be an incompatibility between
  22566. Pandora’s Box and Acorn’s AKA16 MIDI card (v3.14). Therefore, to load
  22567. the game, simply type: *RMKill Midi <return> before attempting to run
  22568. it.  Rob Brown, Surrey.
  22569. 5.6
  22570. •   Psion Organiser and the Archimedes − The PD program !Download, written
  22571. by Emmet Spier, works very well with the Psion Organiser. To upload from
  22572. an Archimedes to an Organiser, I created an application called !Upload,
  22573. consisting of a suitable sprite and a !Run file as follows:
  22574. 5.6
  22575. IconSprites <Obey$Dir>.!Sprites
  22576. 5.6
  22577. Filer_OpenDir serial:
  22578. 5.6
  22579. C. Parker, Hong Kong.
  22580. 5.6
  22581. •   Second internal 3½“ drive on the A5000 − I have fitted a second 3½”
  22582. drive internally on my A5000 with no problems at all.
  22583. 5.6
  22584. The 3½“ drive fitted to the A5000 is a Citizen model OSDA20C. These do
  22585. not seem to be generally available in the UK. The Citizen OSDA39C is
  22586. easy to get and the ONLY difference (according to my experience and
  22587. Citizen UK) is that the drive light is a different colour. They are
  22588. generally available for about £75 + VAT but I got mine for £35 + £10
  22589. overnight delivery + VAT = £52.88 from:
  22590. 5.6
  22591. CD2000, PO Box 1061, London Road, Slough, Berks SL3 8RE (0753−553366)
  22592. (fax 0753− 554661) who were super efficient and helpful.
  22593. 5.6
  22594. There is a power plug already inside the A5000, so all you need is a 9“
  22595. drive cable. I have altered NO links or switches on the A5000. All I did
  22596. was set the tiny slider switch on the drive (next to the socket for the
  22597. data cable) to the opposite position on the drive already in the
  22598. machine. (Actually, this wouldn’t make any difference, as explained in
  22599. the section above about external floppies on the A5000. Ed)
  22600. 5.6
  22601. You need 4 off 18mm spacers and 4 off screws (6BA I think) to fit the
  22602. drive to the bottom of the A5000 case. I used various spacers and nuts
  22603. to make up the 18mm and the drive has worked faultlessly. With RISC-OS 3
  22604. being so slow at any disc backing up or copying, the second drive is
  22605. essential.  Colin Thompson
  22606. 5.6
  22607. •   Shrinking windows − A rare bug has just ‘bitten’ me while using
  22608. Impression. It’s not a bug in Impression, in fact, but a bug in RISC-OS
  22609. 2. I was trying to change the size of the window on a large Impression
  22610. file by using the sizing icon in the bottom right-hand corner of the
  22611. window. The window jumped to about an inch high and would not go any
  22612. longer unless I clicked to open the window to full screen size − that
  22613. worked fine but as soon as I touched the sizing icon, the window
  22614. contracted! I tried various other Impression files but they were OK. I
  22615. restarted Impression, I cut and pasted the text, I saved the text and
  22616. created a new document but the window kept jumping back to this reduced
  22617. size! A phone call to CC revealed the reason. In RISC-OS 2, if the
  22618. window size is exactly 65,535 OS units in size, it gets confused and
  22619. loses the top bit of the window size number and thinks it’s a somewhat
  22620. shorter window. All I had to do was to create a new page in the document
  22621. and all was well. Alternatively, I could have changed the magnification
  22622. − even 1% change solves the problem. Presumably, the chances of it
  22623. happening are small (1 in 65,535?) and it has to be a large document −
  22624. mine was 28 pages displayed at 140% magnification.  A
  22625. 5.6
  22626.  
  22627.  
  22628.  
  22629. •   Virus Kit v1.17 − Some people have had a few problems running version
  22630. 1.17 of the virus killer, which is supplied on Shareware 17 and on the
  22631. Archive 5.5 program disc. Here are a few hints that might help you to
  22632. solve them:
  22633. 5.6
  22634. (i) You should let your Archimedes see either a !System folder or !Scrap
  22635. file before running the !Killer application.
  22636. 5.6
  22637. (ii) Some sticky backdrops clash with the !Killer application and so
  22638. should not be used at the same time.
  22639. 5.6
  22640. (iii) If you have caught the module virus, it is possible for the
  22641. VProtect module in the !Killer application to become infected and so
  22642. prevent the program from being run.
  22643. 5.6
  22644. • Acorn Virus Kit (latest) − Acorn have decided to make the latest
  22645. version of The Virus Kit (currently 1.26) available through Pineapple
  22646. Software rather than Acorn Dealers. This will allow them to keep tighter
  22647. control over the version being distributed and any updates. Contact
  22648. Pineapple Software for availability though distribution isn’t due to
  22649. start until May.
  22650. 5.6
  22651. •   Wimp programming oddities? In the process of developing a wimp utility
  22652. in 100% machine code, I’ve come across a few things that other program
  22653. mers might like to look out for...
  22654. 5.6
  22655. Menus − You can click the mouse in a menu one pixel above the first menu
  22656. item (and also one pixel below the last item). The result is that
  22657. Wimp_Poll returns a menu tree of zero length to your program i.e. the
  22658. first word is returned as −1. Once I had found this (it crashed my
  22659. program completely on random mouse clicks!) I tried it out on all the
  22660. programs I could find. The easiest test is to click the menu button and
  22661. then the adjust button without moving the mouse. Most commercial
  22662. programs weather it OK, just redrawing the menu. Some that don’t are
  22663. Menon 1.86 (which gives a “bad string” error), Ian Copestake’s IDEFS
  22664. (which comes up with “File ‘:4’ not found”), and the Cross-32 assembler
  22665. (which corrupts its menu title to “Crosr 32”).
  22666. 5.6
  22667. Zooms − I’ve seen <adjust> reverse-scrolling mentioned several times,
  22668. but this applies (or should apply, anyway!) to just about anything with
  22669. arrow icons on it; notably the zoom-windows in Paint/Draw and all the
  22670. nudge arrows in Impression.
  22671. 5.6
  22672. Variable Filetype Variables − Regarding David Lenthall’s article in
  22673. Archive 5.5 p 63, I’m using a user file type and have found that the way
  22674. round file type clashes is, in fact, already built into RISC-OS! You
  22675. don’t need to create extra system variables to shift file type numbers
  22676. about:
  22677. 5.6
  22678. SYS “OS_FSControl”,31, “FileTypeName” TO ,,FileTypeNumber%
  22679. 5.6
  22680. works equally well (now we just have to persuade everyone to do this
  22681. rather than using absolute file types in their programs). Fred Williams,
  22682. Cannock Wood  A
  22683. 5.6
  22684.  
  22685.  
  22686.  
  22687. Impression Hints & Tips
  22688. 5.6
  22689. This month’s hints and tips have been submitted by the following people:
  22690. Computer Concepts (CC), Richard Hallas (RH), Paul Beverley (PB), Patrick
  22691. Dowling (PD), Rob Sherratt (RS) and Steve Kirkby (SK). Many thanks to
  22692. all.
  22693. 5.6
  22694. •   Hyphenation − If you want to be able to switch hyphenation on and off
  22695. easily, create a new style with <ctrl-F5>, give it a name such as
  22696. “hyphenated”, go down to the section where it deals with hyphenation,
  22697. switch hyphenation ON, go to the bottom and select an unused key short-
  22698. cut, say <ctrl-shift-F1> and save the new style. Now, to switch
  22699. hyphenation on for a given paragraph, select the paragraph (using <ctrl-
  22700. @> or quad-click with <select>) and press <ctrl-shift-F1>. Alterna
  22701. tively, if you want hyphenation on for most of the document, edit the
  22702. definition of the basestyle to have hyphenation ON and create a new
  22703. style, in the same way, whose only attribute is that hyphenation is OFF.
  22704. (As an aside, I have always found it difficult to find the line dealing
  22705. with hyphenation in the edit style window but I now know why. If you
  22706. click in the scroll bar three times, half of the word “hyphenation” is
  22707. visible at the bottom of the window. Click again and half is visible at
  22708. the top of the window − very easy to miss. So, either slide the scroll
  22709. bar or simply remember that it is only just visible at the edge of the
  22710. window.) − PB.
  22711. 5.6
  22712. •   Ligatures − The word ‘ligature’ actually means ‘tie’ or ‘bandage’ and,
  22713. in typesetting, it refers to groups of two or more letters which are
  22714. joined together. In professional typesetting, several exist but the
  22715. Archimedes’ font system has just two: fi and fl.
  22716. 5.6
  22717. Impression provides no handy short cut to access them, so if you wish to
  22718. use them, you need to do two separate searches through the entire text
  22719. as follows: bring up the find text box and enter fi into the first slot,
  22720. ensuring the Case sensitive switch is on. Then move the caret into the
  22721. second box, hold down <alt> and type 158 on the numeric keypad. A single
  22722. character will be entered which, when viewed in an outline font which
  22723. supports it, will appear as fi. For fl, repeat the process, but replace
  22724. all occurrences of fl (obviously) with character 159. Remember to do a
  22725. case sensitive search, since replacing Fi and Fl with the ligatures will
  22726. make them lose their capital letters.
  22727. 5.6
  22728. Not all fonts (especially the PD ones) contain the ligatures, and some
  22729. PD fonts have them in the wrong places. You should replace the normal
  22730. letters with the ligatures after you have finished your document because
  22731. Impression’s spell-checker does not take them into account and will
  22732. query any words containing them. This month’s disc should contain a
  22733. system font file which I have created; it is identical to the standard
  22734. one, except that the previously undefined characters have been created
  22735. to look like the outline font characters they produce, so you can see
  22736. things like smart quotes and ligatures in Edit. It’s useful to load this
  22737. in the boot-up sequence. − RH.
  22738. 5.6
  22739. •   Rotated text in Impression − Those lucky enough to own an A5000 will,
  22740. of course, have the new versions of Draw and Font Manager. Charles Moir,
  22741. director of Computer Concepts, suggests the following tip: since the new
  22742. Font Manager can rotate text by itself, create some text in Draw, and
  22743. import it into an Impression graphic frame. Dragging in the frame with
  22744. <adjust> should now rotate the text or you can set the angle precisely
  22745. in the ‘Alter graphics’ dialogue box. − RH
  22746. 5.6
  22747. •   Hyphens and minus signs − Character 153 is very useful as a hyphen −
  22748. as you can see! In fact, it is really the minus sign (compare it with
  22749. the plus and you will find they are both the same width and their
  22750. crossbars are at the same horizontal position − see for yourself −+−+−);
  22751. the minus sign on the keyboard actually produces a short hyphen of the
  22752. sort which should be used to break words at the ends of lines. Anyway,
  22753. Impression provides handy access to this character: simply press <ctrl-
  22754. shift> in conjunction with the minus key. Characters 151 and 152 are the
  22755. en (–) and em (—) dashes respectively but, unfortunately, these have no
  22756. handy short cuts. − RS & RH.
  22757. 5.6
  22758. •   Finding effects − If you want to be able to look through a document
  22759. and find where a particular effect occurs (as opposed to a style) all
  22760. you need to do is modify one line in the ‘UK’ file in the Resources
  22761. directory inside the !Impression application. As supplied, there is a
  22762. line that says “Cnf1:” − all you have to do is add an E making it
  22763. “Cnf1:E”. Next time you start up Impression, you will find that, when
  22764. you click on the arrow at the right of the search string box, it will
  22765. list not only the styles but also the effects. (In case you have
  22766. forgotten, I published a hint a year ago to explain that, to find a
  22767. particular effect or style, you should select it from the menu on the
  22768. search string box and follow it by an “@”. In other words, look for any
  22769. string following the place where that effect / style is first switched
  22770. on.) − PB.
  22771. 5.6
  22772. •   Double scale − on later versions of Impression (about 2.14g onwards)
  22773. you will find that <shift-F12> no longer doubles the scale of the
  22774. current view. This is because <shift-F12> is used on RISC-OS 3 to toggle
  22775. the icon bar forwards and backwards. Double scale has now been moved to
  22776. <ctrl-shift-F11>. − PB.
  22777. 5.6
  22778. •   Reverse characters − From 2.15 onwards, there is a keyboard short-cut
  22779. that I have been asking for since I started using Impression in earnest
  22780. − swap characters. If you press <ctrl-shift-Q>, the two characters
  22781. either side of the cursor swap places. This is very helpful because it
  22782. allows you to correct, very quickly, one of the most common tpying
  22783. errors! − PB
  22784. 5.6
  22785. •   Single word spelling check − If you want to check the spelling of a
  22786. single word, you don’t need to select the whole word − just place the
  22787. cursor somewhere in the word and use <ctrl-W>. (I suppose everyone
  22788. except me knew that anyway!) I find that this speeds things up
  22789. especially if, as you are typing, you get to a word that you don’t know
  22790. how to spell; all you do is to have a go at typing the word and then,
  22791. before you press space or full-stop, press <ctrl-W>. If it is incor
  22792. rectly spelt, it is selected and the spelling box appears with,
  22793. hopefully, a guess at the right spelling. Click on “Replace” and away
  22794. you go.
  22795. 5.6
  22796. Also, if, while you are typing, you get a spelling error bleep then, as
  22797. long as you haven’t started to type the next word, you can press <ctrl-
  22798. W> and correct the erroneous word. − PB.
  22799. 5.6
  22800. •   Avoiding smart quotes − In the magazine, I like to use “smart quotes”
  22801. rather than plain quotes but they look a little funny on program
  22802. listings. If I want to paste in an article which contains programs as
  22803. well as straight text, I have a problem. Either I can switch smart
  22804. quotes OFF on the Preferences list and then edit them into the text or I
  22805. can leave it ON but edit them out of the listing. Then I had a brain-
  22806. wave (-storm?). I realised that the only time I use the Corpus font is
  22807. for program listings, so I never need to have smart quotes in that font.
  22808. All I did, therefore, (well, Adrian did for me) was to load Corpus into
  22809. FontEd (Careware 7) and edit the smart quotes so that they are the same
  22810. as the normal quotes. This can be done by editing each smart quote in
  22811. turn and copying the plain quote into its place. − PB.
  22812. 5.6
  22813. • Rotating sprites − Draw-files can be rotated within Impression but, in
  22814. the normal course of things, not sprites, scanned pictures or bit-image
  22815. clip-art etc, unless Enhanced Graphics is switched on. This is hidden
  22816. away in Preferences, the one in the icon-bar menu, not the one in the
  22817. Document sub-menu. It is effective immediately and does not need to be
  22818. saved as a preference option. (When switched on it also automatically
  22819. switches on Greyscale Dithering but that can be switched off again if
  22820. not wanted.) Scanned images etc can then be rotated inside Impression by
  22821. entering an angle in the Alter Frame box. Remember also, when subse
  22822. quently reloading the file, to switch on the Enhanced Graphics again,
  22823. (if it’s not saved as a preference) as this won’t happen automatically.
  22824. − PD. You can also rotate the image by dragging within the graphic frame
  22825. using <adjust>. − RS.
  22826. 5.6
  22827. • Spurious form-feeds − Using dot matrix printers (e.g. FX80) you may
  22828. get an extra form-feed between pages when printing a multi-page
  22829. document. The solution, (thanks to Alan Williams of Acorn, Melbourne,
  22830. for this one) is to set Scale in the ‘Print’ box to 97 or 98%. No
  22831. further problem! − PD.
  22832. 5.6
  22833. • The underline trap − If you set up underline when creating a Style,
  22834. maybe for a sub-heading, do not try later to remove the underline with
  22835. <shift-ctrl-U>. Probably nothing at all happens but, sometimes, the
  22836. screen goes inverse and panic reigns until Reset is pressed! − PD. I
  22837. tried without success to repeat this problem with release 2.16, but
  22838. <shift-ctrl-U> caused no ill effect. It did not cancel the underlined
  22839. style either, which I guess is correct. − RS.
  22840. 5.6
  22841. • ¼ ½ ¾ characters − These are available on <alt-188>, <alt-189> and
  22842. <alt-190> respectively in the main fonts − Trinity, Pembroke, Homerton
  22843. etc and several others but by no means all. Many fonts conform in
  22844. general, but with omissions, to the character set laid out in Appendix 5
  22845. of the manual. Most contain a bullet (•) on <alt-143>, (or <shift-ctrl-
  22846. H>) and a decimal point (·) on <alt-183>. The ones that don’t, Optima
  22847. and Hull for instance, have their bullet on <alt-183> and a different
  22848. set of characters in the row 128 to 159 including, for instance, TM. In
  22849. general, there seem to be two main variations for this row while System
  22850. is completely on its own. The characters in 160 to 255 appear more or
  22851. less standard across the board where they are present, though most fonts
  22852. omit some and some (PD and magazine fonts particularly) omit most if not
  22853. all the top-bit-set characters, save for the £ symbol. With <alt-215>
  22854. and <alt­247> it’s a toss-up whether you get × and ÷, or Œ and œ, or
  22855. nothing at all. (!Chars in Impression’s Utils directory is a useful
  22856. reference but much better is Beebug’s !CharSel which looks identical but
  22857. has a pointer showing the character number.) − PD.
  22858. 5.6
  22859. • Fit lots − If you want to know or have forgotten what it means, it
  22860. does not appear in the index. You will find it on p.144 on the last, and
  22861. easily missed, page of ‘Print’. − PD.
  22862. 5.6
  22863. • Frames − How to put a frame around an existing chunk of text? You
  22864. can’t! The only way is to move the chunk to the clipboard, create the
  22865. frame and then copy it back in. − PD. You can also create a number of
  22866. new frames which fill the area occupied by the old frame, click in the
  22867. old frame area and then press <adjust> in the new frames. Text will then
  22868. flow from the old frame into the new one and, if you stretch the new
  22869. frames so that there is no printable area left in the original frame,
  22870. the desired effect can be achieved. − RS.
  22871. 5.6
  22872. • Master pages − It seemed perfectly logical to me to press ‘New
  22873. Chapter’ on the key-strip when I wanted to start a fresh document with
  22874. other than the default master page. I got the new master page all right
  22875. − as well as the default page I didn’t want and found no way to get rid
  22876. of it. (You need to move to the unwanted chapter, then use <menu>
  22877. <Edit><Delete Chapter>. − RS) You can alter the current chapter to use a
  22878. different master page by using ‘Alter Chapter’ which is not on the key-
  22879. strip. The key short cut is <shift-ctrl-A>. Be aware that if you are
  22880. viewing the master pages when trying to do this, you will find ‘Alter
  22881. Chapter’ greyed-out on the Edit sub-menu. The answer is to go back to
  22882. the document page, remembering which number master page is wanted and
  22883. try again there. Also note that if you want to use one of the three-
  22884. column master pages, (numbers 7 or 8) remember the default frames are
  22885. only Guides and you must create new frames before anything can be typed
  22886. in. − PD.
  22887. 5.6
  22888. • Guide frames − It is really most provoking, having carefully followed
  22889. the manual to find the screen blandly refusing to operate as stated. Can
  22890. anyone suggest why my guide frames do not remain visible? I create them,
  22891. (sub-menu New Frame) on the document page or on the master page, click
  22892. elsewhere and they just vanish. They are not a lot of use if I can’t see
  22893. them, so which little hidden detail in the manual have I failed to
  22894. register, please? − PD. Guide frames are always positioned as the
  22895. rearmost (back) frame on the page. If you make sure all text /graphic
  22896. frames on the page are local frames (<menu><frame> <alter frame><make
  22897. local>) and then reduce these in size, you will see the yellow guide
  22898. frames that you had created. Guide frames are mainly of use when setting
  22899. up a master page, though. − RS. Am I missing something here? Can’t you
  22900. just make it visible by using <ctrl-F10> to alter the frame and changing
  22901. from a white background to transparent? − PB.
  22902. 5.6
  22903. (By the way, I hadn’t come across the idea of turning a master frame
  22904. into a local frame. If you hadn’t either, read up in the Impression
  22905. manual on page 84 then have a play with it − it could prove a useful
  22906. facility. − PB)
  22907. 5.6
  22908. • Font cache full error − Even with the cache set to a ridiculous size,
  22909. 750k or more, this error recurred and anyway, isn’t the cache itself
  22910. supposed to clear enough space for a new font if necessary? I found that
  22911. some silly PD game had unplugged SpriteUtils module and restoring it
  22912. seemed to resolve the difficulty. It’s not only PD games that do this −
  22913. the demo version of Cataclysm sent out by Archimedes World unplugs
  22914. virtually everything including the Font Manager. Even a power off /on
  22915. will not restore unplugged modules. If you aren’t sure whether anything
  22916. has been unplugged, type *UNPLUG and it will list any unplugged modules.
  22917. − RS.
  22918. 5.6
  22919. • Rule off errors − The Impression manual is a bit short on advice when
  22920. the package refuses to do what it should and it is totally silent on the
  22921. subject of errors. What do you do for instance when the machine throws
  22922. at you: “Overflow while transforming point, print aborted” ? I had been
  22923. trying to print a landscape document containing a few vertical rules.
  22924. Later, I noticed one of the rules slightly projecting beyond the edge of
  22925. the frame. I went to the Style Edit box and switched ‘Rule-off’ on, and
  22926. set it to 0pt. I must have done something right − the next time I tried,
  22927. it produced a perfect print-out! − PD
  22928. 5.6
  22929. • Shift and control symbols − Patrick sent a detailed account of using
  22930. !FontDraw to generate a graphical representation of the <shift> and
  22931. <control> keys − as they appear in Impression menus − and then continued
  22932. to incorporate these into embedded frames at 30 or so points in his
  22933. text. He also asked if there was an easier way? − PD. Yes there is. Use
  22934. the Acorn Font Editor and David Pilling’s D2Font Drawfile to font
  22935. converter which is on the same disk as his Trace program (now available
  22936. through Archive for £6). You will end up with a new outline font which
  22937. can be used within Impression just like any other font and which can be
  22938. used within a style and assigned to a function key to turn it on and
  22939. off. If anyone has the time to do this, please would they send Archive a
  22940. copy of the resulting font for the magazine disk? − RS.
  22941. 5.6
  22942. • Find within a group of frames − If the currently selected frame is a
  22943. group of frames then the <find text> menu option is unavailable. To make
  22944. it available, select a frame that does not contain a group and which
  22945. contains at least one letter, (or create such a frame and text character
  22946. if necessary). Then, to find or replace throughout the document
  22947. (including all grouped frames), turn on the <whole document> button in
  22948. the <find> dialogue box, and use find or replace as normal. − SK.
  22949.  
  22950. Hints and Tips
  22951. 5.7
  22952. •   A5000 floppy drive problems − There have been a number of comments in
  22953. Archive about the slowness of the A5000’s floppy drive. Could this be
  22954. due to a bug which RISC-OS 3 has with the ADFS buffers. There was a note
  22955. with my machine when it was delivered saying that the ADFS Buffers
  22956. should be configured to zero due to a bug which causes occasional data
  22957. errors. Configuring thus makes the floppy drive incredibly slow during
  22958. copy operations with a track access taking more than 2 seconds. I
  22959. preferred to have the speed and I spoke to Peter Dunn of Acorn at an
  22960. Open Day in Glasgow recently who told me that the adfs buffers problem
  22961. had only appeared with the Acorn DTP and that it shouldn’t be a problem
  22962. with other programs like Impression. Indeed they had their A5000s
  22963. configured with ADFS Buffers set to 16k so I copied them.
  22964. 5.7
  22965. Then just the other day, Impression 2.16 dropped through my letter box.
  22966. A couple of days later, I had two relatively complex newsletters to
  22967. typeset. The first crashed during a save operation, losing most of the
  22968. text. I thought ‘That will teach me to make back-up copies in future.’ I
  22969. remade the document successfully. The next job was done with two copies
  22970. on the hard disk, a main and a back-up. The main would auto-save and I
  22971. would make a back-up by adding a ‘b’ to the filename. Well into this
  22972. job, it crashed. Both copies were corrupted, so I gave up and returned
  22973. to version 2.14f. No further problems. A word with Computer Concepts and
  22974. they suggested that I return the ADFSbuffers to zero.
  22975. 5.7
  22976. I’d be interested to hear if other A5000 and Impression users have had
  22977. similar or other experiences with their setup.  David Woods, Glasgow
  22978. 5.7
  22979. •   ArcDFS and !65Host − If you try to use ArcDFS with the 6502 emulator,
  22980. you may get a “Bad DFS emulation” error. John Fletcher of Dabs Press
  22981. says: “This is because the manual does not fully explain how to use
  22982. ArcDFS with the emulator. The way to access a DFS disc, is not to type
  22983. *DISC, but to type: *Dir dfs::<drive number>. You should also change
  22984. drive using the above command instead of *Drive.”  P Northing, Sheffield
  22985. 5.7
  22986. •   Bringing windows to the front − To move a window to the front, you
  22987. must click on its title bar. This often involves moving other windows to
  22988. get to it. However, I have just discovered that clicking on the window’s
  22989. adjust size icon (bottom right) also brings the window to the front.
  22990. This ‘obvious’ hint may help prevent too much window shuffling!  R
  22991. House, Andover
  22992. 5.7
  22993. •   Canon Bubblejets BJ300 & BJ330 − There are some undocumented features
  22994. on these machines that make cleaning and changing ink cartridges a bit
  22995. easier. The normal cleaning cycle is started by pressing the shift then
  22996. the cleaning keys. An extended cycle is started by pressing shift then
  22997. pressing and holding cleaning and then pressing shift again.
  22998. 5.7
  22999. There is a function called reference aging which sprays ink all over the
  23000. printed area of the paper. Be warned though that this uses a lot of ink
  23001. and the ink is very difficult to remove from hands, etc so have a poly-
  23002. bag handy to pop the sheet in!! The sequence can be stopped by turning
  23003. the printer mains off. Press shift then press and hold cleaning and then
  23004. press card and paper together and release cleaning.
  23005. 5.7
  23006. I’ve been using “Report” photocopier paper in my BJ300 and the print
  23007. quality is superb.  Ned Abell, Kidderminster
  23008. 5.7
  23009. • Changing the file allocation of a hard Disk − My A410/1 is equipped
  23010. with an internal 40M ST506 hard disk (NEC). Recently I added an external
  23011. SCSI hard disk (cached Morley “Cheetah”, 100M, fitted with a Rodime
  23012. R3000 disk). When I compared those two drives, I made some very
  23013. unexpected discoveries.
  23014. 5.7
  23015. I copied the entire content of the internal disk (39M) to the new drive,
  23016. because I wanted to soak test the old disk. To my amazement the SCSI
  23017. “free” window showed that I had already used up no less than 62M of
  23018. space! I phoned the (very friendly and competent) Morley help line, and
  23019. they told me that larger drives usually were formatted differently from
  23020. small ones (with larger blocks), because this improved their speed
  23021. performance.
  23022. 5.7
  23023. They advised me that if the extra space was more important to me than
  23024. speed, I should use the formatter on the Morley support disk to alter
  23025. the size of allocated blocks. I fiddled around with this application and
  23026. found that it is indeed possible to change the space needed for a file
  23027. quite considerably; in the configuration that I finally chose, the 39M
  23028. from my old disk actually occupied slightly less space − below 38M!
  23029. 5.7
  23030. What is more, the speed tester showed a slightly worse performance, but
  23031. any improvised speed tests I did myself (like copying 3M of files from
  23032. RAM disk to hard disk and back) showed these differences to be quite
  23033. negligible.
  23034. 5.7
  23035. So: If you buy a new (second) hard disk, it might be a good idea to
  23036. check how it administrates data, before you do any serious work with
  23037. it!  Jochen Konietzko, Köln, Germany
  23038. 5.7
  23039. •   DFS reader and A5000 − When the DFS reader (Shareware 31) is run on
  23040. the A5000, it fails with “Unknown or missing variable at or about line
  23041. 260”. This can be cured by adding the following line:
  23042. 5.7
  23043. 215 large% = TRUE : full% = TRUE
  23044. 5.7
  23045. M Pullin, Cheltenham.
  23046. 5.7
  23047. •   Econet interface faults − We had a big mains spike that ‘took out’
  23048. twelve BBC B Econet interfaces. At first, the Masters and Archimedes
  23049. machines seemed OK but further investigation proved otherwise. The
  23050. findings may prove useful to others.
  23051. 5.7
  23052. There are two types of Acorn Econet cards, (plus the XOB one) an old one
  23053. and a newer one. All the machines with the old type of cards seemed fine
  23054. after the spike but none of the newer ones worked! Our first thought was
  23055. that they were zapped by the spike. However, on closer examination, when
  23056. we disconnected the old type machines from the network, the ones with
  23057. the newer type card started to work. Looks like some of the old type
  23058. cards are faulty but still working. The old style cards definitely seem
  23059. more fault tolerant than the new ones! A faulty old style card can still
  23060. work but it will stop other machines with the new style cards from
  23061. working!  Dave Leckie, Fort William.
  23062. 5.7
  23063. •   HP Deskjet 500 & RISC-OS 3 − Here is a tip about the RISC-OS3 printer
  23064. drivers and the HP Deskjet 500. The graphics margins given in the HP
  23065. configuration for the A4 (Generic Deskjet) are a bit conservative.
  23066. 5.7
  23067.    Top − 12.5mm
  23068. 5.7
  23069.    Bottom − 19.9mm
  23070. 5.7
  23071.    Left − 5.0mm
  23072. 5.7
  23073.    Right − 7.0mm
  23074. 5.7
  23075. From the manual and from my own experiences of using the printer and
  23076. seeing where it can print to, I have come up with new values which are:-
  23077. 5.7
  23078.    Top − 1.5mm
  23079. 5.7
  23080.    Bottom − 10.5mm
  23081. 5.7
  23082.    Left − 3.2mm
  23083. 5.7
  23084.    Right − 3.2mm
  23085. 5.7
  23086. I have used these values very successfully ever since I got the machine.
  23087. The RISC-OS 2 printer driver for the Laserjet/Deskjet has problems when
  23088. it has different values for top and bottom margins because it prints out
  23089. in landscape mode in the opposite direction to the way the margins have
  23090. been set. i.e. it prints out last, the part of the sheet which is shown
  23091. by the print borders to be the top! RISC-OS 3 has sorted this out
  23092. allowing the maximum printing area to be available. It can be very
  23093. important when using Impression’s ‘fit lots’ facility to reduce pages to
  23094. have as much room as possible as margins are reduced as well.  David
  23095. Woods, Glasgow
  23096. 5.7
  23097. •   Paper for inkjets − I too have had much trouble obtaining good paper
  23098. for my HP Deskjet 500. The manual recommends photocopy paper and that
  23099. you should use the paper’s correct side (as marked by the arrow on the
  23100. end of the packet). I have found photocopy paper to be poor no matter
  23101. what side I try. The results usually come out ‘furry’ where the
  23102. absorbency of the paper has caused the ink to creep by capillary action.
  23103. Prior to the type of ink sold by Hewlett Packard being changed to a more
  23104. permanent one, some photocopy paper gave white patches within areas of
  23105. black which I think was due to a degree of waxiness repelling the ink
  23106. from spots but this phenomenon happens no more.
  23107. 5.7
  23108. (Acorn Inkjet owners can also benefit by using the HP DJ 500 cartridges
  23109. as they are the same fitting. Ed.)
  23110. 5.7
  23111. The new ink seems to give good results with some types of paper but
  23112. rather ‘furry’ with others. Interestingly, I found that Croxley Script
  23113. 80gsm, similar to that mentioned by Paul Bamberger in Archive to be very
  23114. poor. I have settled on two paper types for ‘cheap and good’ and
  23115. ‘expensive and excellent’ printouts. The cheaper paper is ‘Plus Fabric
  23116. 70gsm’ from Empire Fine Papers at about £7.50 for 500 sheets. This gives
  23117. consistently sharp, even results although it does wrinkle if there are
  23118. large printed dark areas.
  23119. 5.7
  23120. For printouts intended for further copying by a photocopier or at a
  23121. printing company (or for making letterheads for small businesses) I have
  23122. found that a type of paper generally described as ‘laid’ paper,
  23123. available in various brands, is excellent, costing about £15 a box. It
  23124. is smooth on one side and has a fine, ribbed pattern on the other. Both
  23125. sides accept ink very well and you often see the paper used for
  23126. prestigious company printed letterheads. I have used both ‘GB Classic,
  23127. White Laid, 100gsm’ and ‘Conqueror, High White Laid, 100 gsm’.  David
  23128. Woods, Glasgow
  23129. 5.7
  23130. • Printing on labels or A3 paper − Most RISC-OS printer drivers have
  23131. difficulty with anything other than A4 paper. Although they have a page
  23132. length setting, they do not tell the printer the page length to expect,
  23133. so the printer still assumes that it has 11“ or A4 size paper (usually
  23134. determined by a DIP switch). This is fine when printing on individual
  23135. sheets or when using a sheet feeder to feed labels or envelopes but it
  23136. causes serious problems with tractor feed labels or with A3 paper.
  23137. Imagine printing on 1” tractor feed labels from Impression. The
  23138. Impression master page must be defined to be 1“ length and, similarly,
  23139. the printer driver’s page length must be set to 1”. The first label is
  23140. printed and the printer driver sends a form feed character telling the
  23141. printer to advance to the next form (page). Unfortunately, the printer
  23142. driver assumes that it is using 11“ paper and feeds over the next 10
  23143. labels, simply because the printer driver did not define the printer’s
  23144. page length. Similarly, printing on A3 paper (using a Canon BJ330 for
  23145. example) fails because the printer thinks it is using A4 paper. The
  23146. solution is for the printer driver to pass on the page length setting to
  23147. the printer and this is a very simple change for Acorn to make.
  23148. Meanwhile, it is necessary to modify the page start and end strings
  23149. manually. With RISC-OS 2 drivers this can be difficult, but with RISC-OS
  23150. 3 the printer driver editor allows it.
  23151. 5.7
  23152. With an Epson compatible printer, the page length can be defined by
  23153. putting ESC,“C”,n in the page start string, where n is the page length
  23154. in lines (1/6“ per line). With an IBM compatible printer, an extra
  23155. ESC,“2” is needed on the end. Furthermore, it is sometimes necessary to
  23156. change the page end string which is often set to perform a printer reset
  23157. (ESC,“@” on Epson printers) after every page − this should be removed
  23158. completely. Note that these changes must be applied for each resolution
  23159. setting that is to be used and that a new printer driver file should be
  23160. saved with its name and type set appropriately to indicate that it is a
  23161. different version for a special page size.   Paul Skirrow, Ipswich
  23162. 5.7
  23163. (Acorn are aware of the problem and have found at least a partial
  23164. solution − see the comments below, page 9. Ed.)
  23165. 5.7
  23166. •   Mandelbrot bakeware − I have written a short PROC to improve Basil’s
  23167. Mandelbrot program (Archive 5.6 p57):
  23168. 5.7
  23169. DEFPROCdebug
  23170. 5.7
  23171. WHILE flour=flour+weevils
  23172. 5.7
  23173.   REPEAT
  23174. 5.7
  23175.     GETweevil
  23176. 5.7
  23177.     BPUT# weevil ON blockA%
  23178. 5.7
  23179.     BEAT blockB%
  23180. 5.7
  23181.   UNTIL dead%=TRUE
  23182. 5.7
  23183.   weevils-=1
  23184. 5.7
  23185. ENDWHILE
  23186. 5.7
  23187. ENDPROC
  23188. 5.7
  23189. The variable declaration: Mouth_Open=FALSE is the best I’ve seen so far!
  23190. I have another for anyone who typed the program in:
  23191. 5.7
  23192. Egg_on_face=TRUE.
  23193. 5.7
  23194. Joseph Seelig, Harrow.
  23195. 5.7
  23196. •   Ten tips for larger memories − The article on better use of available
  23197. memory (Archive 4.6 p52) set me thinking and here’s a tip for those of
  23198. us who don’t have a hard disc. I have 4M in a 310, two 3½“ internal
  23199. floppies and an external 5¼” drive.
  23200. 5.7
  23201. If you look at what you use your computer for, it breaks down into a few
  23202. task areas as well as playing games. I create a Task disk for each
  23203. activity and that sits in the 5¼“ drive and I have one each for DTP,
  23204. business and drawing. Each disc has !System, different !Fonts and the
  23205. appropriate applications that I can cram on using !Compression.
  23206. 5.7
  23207. Each task disc has two Obey type files called !boot and startlist to get
  23208. everything up and running and here I put in a plug for the excellent
  23209. !DeskEdit utility from Beebug which allows even me to get this working
  23210. quickly.
  23211. 5.7
  23212. Let’s look at the business Task disc which is called “LrgeBus1”.
  23213. 5.7
  23214. The !boot obey file consists of one line...
  23215. 5.7
  23216. Desktop-File adfs::LrgeBus1.$ .startlist
  23217. 5.7
  23218. and clicking on this runs the second file called startlist. As you
  23219. probably know, if this Task disc were in drive 0 it could be set to auto
  23220. start each time the computer was turned on, by setting the disc to *OPT
  23221. 4,3 and the computer to *Configure Boot.
  23222. 5.7
  23223. The second obey file called startlist sets up the essential tasks that
  23224. you will need but some of these are squeezed on the disc under the
  23225. !Compression filing system. If you specify “cfs#adfs” as a filing system
  23226. to get them to load, the computer throws a wobbly so I set up two
  23227. aliases as the first lines of startlist.
  23228. 5.7
  23229. Set Neds$Dir adfs::LrgeBus1.$
  23230. 5.7
  23231. and
  23232. 5.7
  23233. Set NedsCFS$Dir cfs#adfs:: LrgeBus1.$
  23234. 5.7
  23235. you can then get the computer to find the bits you want by using:
  23236. 5.7
  23237. <Neds$Dir>.!System
  23238. 5.7
  23239. and to load various fixes found in the system modules directory into
  23240. memory like..
  23241. 5.7
  23242. RMLoad<Neds$Dir>.!System.
  23243. 5.7
  23244. modules.WimpUtils
  23245. 5.7
  23246. and then to get !Compression up and running
  23247. 5.7
  23248. <Ned$Dir>.!CFS
  23249. 5.7
  23250. Now a word about !Fonts. I use Swiss as my main business font. You need
  23251. to edit the run file of !Fonts and put in a “desktop” command at the end
  23252. after “FontCat”or it will stop and ask you to press space. I also tailor
  23253. the run file after the line “Echo Font Manager 2.42 installed.” with the
  23254. lines
  23255. 5.7
  23256. Echo Neds Business Fonts now available:
  23257. 5.7
  23258. Echo
  23259. 5.7
  23260. because I like to personalise things!!
  23261. 5.7
  23262. Back in startlist, we can now run...
  23263. 5.7
  23264. <NedsCFS$Dir>.!Fonts
  23265. 5.7
  23266. which are compressed and then in a compressed directory called resources
  23267. 5.7
  23268. <NedsCFS$Dir>.resources.
  23269. 5.7
  23270. !PrinterDM
  23271. 5.7
  23272. <NedsCFS$Dir>.resources.!Alarm
  23273. 5.7
  23274. and anything else you need and the last line is
  23275. 5.7
  23276. desktop
  23277. 5.7
  23278. The whole process is very easy to achieve and each task disc can be
  23279. tailored. The drawback is that its a bit on the slow side and all my
  23280. fonts have to be uncompressed before I use them but I do set a large
  23281. Fontsize.  Ned Abell, Kidderminster
  23282. 5.7
  23283. • Transferring PC files with the Emulator − It is true that the multi-
  23284. tasking PC Emulator does prevent access to the PC hard disc partition
  23285. while it is running and it is therefore necessary to quit the emulator
  23286. before a file created by a PC program can be read in RISC-OS. This is
  23287. because RISC-OS does not know whether the PC hard disc partition is in a
  23288. valid state or not (i.e. a PC program may be writing to an open file).
  23289. However, it is possible to transfer files between RISC-OS and the PC
  23290. emulator by using floppy discs. After the PC has written a file to the
  23291. floppy it may be necessary to dismount the floppy disc (using the menu
  23292. item) and re-open it by clicking on the floppy icon to make RISC-OS read
  23293. the directory again (otherwise it may not realise that it has been
  23294. changed). This works with RISC-OS 3, but should also work with any of
  23295. the various PC disc readers.  Paul Skirrow, Ipswich
  23296. 5.7
  23297. •   Watford mouse − If you need to replace the plug on a Watford mouse
  23298. (old version) my experience may be useful. The original plug is moulded
  23299. onto the cable, and it took careful dismantling with a sharp knife to
  23300. discover where each wire went.
  23301. 5.7
  23302. I purchased the replacement plug from Maplin Electronics (code JX19V
  23303. 0.82p, page 177). This plug has three disadvantages; firstly it has no
  23304. cable strain relief, so you must be sure of your wiring, secondly, it is
  23305. extremely difficult to disassemble and thirdly you need to shave a small
  23306. amount from the front to fit it into the socket of an A310. (I don’t
  23307. think it would fit too well on an A3000!) The wire colours are as
  23308. follows (functions as on p469 of the A310 User Guide):  
  23309. 5.7
  23310.  Pin   Function   Colour
  23311. 5.7
  23312. 1   X Reference      white
  23313. 5.7
  23314. 2   Switch 1      yellow
  23315. 5.7
  23316. 3   Switch 2      red
  23317. 5.7
  23318. 4   0V return      brown
  23319. 5.7
  23320. 5   X Direction      green
  23321. 5.7
  23322. 6   5V supply      black
  23323. 5.7
  23324. 7   Y Reference      blue
  23325. 5.7
  23326. 8   Switch 3      orange
  23327. 5.7
  23328. 9   Y Direction      purple
  23329. 5.7
  23330. M Angove, Caerphilly
  23331. 5.7
  23332. •   Wonderland on SCSI − I’ve managed to get Wonderland to work on SCSI.
  23333. What you do is:-
  23334. 5.7
  23335. Obtain the SCSI “fix”, which Archive will supply if you send them a
  23336. charity donation (minimum £2). However, it’s also on this month’s
  23337. program disc.
  23338. 5.7
  23339. Run the INSTALL program on the “fix” disk, using the “fix” disk when
  23340. asked for disk “ONE”, then the original disk “TWO”, “THREE” and “FOUR”.
  23341. 5.7
  23342. When the installation is complete, use !Edit to modify the “win”
  23343. application code. Look for the second occurrence of the text “adfs” and
  23344. replace it with “scsi”. (If you replace the first one, it all seems to
  23345. work until you save or restore a game position.)
  23346. 5.7
  23347. To get it to work on SCSI with 1M memory you need to unplug more modules
  23348. than you would with ADFS, because SCSI, SCSIFiler and SCSIDirCache take
  23349. up some space. I find that I need to unplug:− Debugger, Draw, EcoNet,
  23350. FontManager, IIC, NetFS, NetPrint, NetStatus, PaletteUtil, Percussion,
  23351. RAMFS, RAMFSFiler, ShellCLI, SoundChannels, SoundDMA, SoundScheduler,
  23352. StringLib, SystemDevices, WaveSynth.
  23353. 5.7
  23354. Mike Williams, London N16.
  23355. 5.7
  23356. The following hints and tips are taken from the February Acorn Customer
  23357. Services Newsletter.
  23358. 5.7
  23359. •   RISC-OS 2 printer drivers
  23360. 5.7
  23361. 1) We have had reports of the release 2 printer drivers producing the
  23362. following error message:
  23363. 5.7
  23364.    “Invalid number of output bits”
  23365. 5.7
  23366. This error is produced when you attempt to print a sprite that was
  23367. created in a 256 colour screen mode such as MODE 15 in a 16 colour mode
  23368. such as MODE 12. The solution to the problem is to print in MODE 15 if
  23369. this error occurs, or to print the sprite in the mode in which it was
  23370. created.
  23371. 5.7
  23372. 2) When attempting to load any of the many RISC-OS 2 desktop printer
  23373. drivers the following error message may be displayed:    “Filing
  23374. System or path ‘Printer:’ not present internal error xxxx”
  23375. 5.7
  23376. The error is caused by one of the printer driver support modules
  23377. becoming unplugged from the operating system. To resolve the problem,
  23378. the first action to take is to find out which modules are unplugged.
  23379. This information can be found by typing the following command from the
  23380. command line:
  23381. 5.7
  23382. *UNPLUG
  23383. 5.7
  23384. It is then necessary to re-insert the modules that *UNPLUG has shown as
  23385. being unplugged with the following command:
  23386. 5.7
  23387. *RMREINIT <ModuleName>
  23388. 5.7
  23389. Once you have used *RMREINIT to re-initialise all the modules, you
  23390. should then perform a <ctrl-break> to ensure all the modules have
  23391. started correctly.
  23392. 5.7
  23393. 3) Printing labels on small page lengths can sometimes cause problems.
  23394. 5.7
  23395. a) !PrinterDM (2.46) reads a system variable called PDriver$DMExtra at
  23396. the start of each print job and sends it to the printer before the
  23397. actual data stream. PDriver$DMExtra has to be set using GSTrans format
  23398. so, to set a page length of nine lines, you would use:
  23399. 5.7
  23400. *SET PDriver$DMExtra |[C|I
  23401. 5.7
  23402. You would use |[C|J for ten lines and |[C|K for eleven lines and so on.
  23403. This command can be executed explicitly from the command line (after
  23404. !PrinterDM has been loaded) or incorporated in the !Run file.
  23405. 5.7
  23406. b) Set the (Graphics) clip window to the appropriate size from
  23407. !PrinterDM’s icon bar menu. If the stationery is continuous, you can
  23408. leave the top and bottom graphics margins set to zero.
  23409. 5.7
  23410. c) Finally, you need to tell the Wordprocessor you are using, the page
  23411. size of each label.
  23412. 5.7
  23413. •   RISC-OS 3 printer drivers − Loading RISC-OS 2 printer drivers into
  23414. Acorn A5000s with RISC-OS 3 can cause problems if an attempt is then
  23415. made to load the RISC-OS 3 !Printers application from the Applications 1
  23416. disc or directory if stored on the hard disc.
  23417. 5.7
  23418. !Printers will report the error “!Printers requires PDriver 3.16 or
  23419. later”.
  23420. 5.7
  23421. The error occurs because the RISC-OS 2 printer driver loads an older
  23422. PDriver module than 3.16. The solution to the problem is to type from
  23423. the command line.
  23424. 5.7
  23425. *RMKILL PDriver
  23426. 5.7
  23427. *RMREINIT PDriver
  23428. 5.7
  23429. This will allow you to load the new !Printer application supplied with
  23430. RISC-OS 3 on the A5000.
  23431. 5.7
  23432. •   Maestro − Version 1.75 has a problem where notes are displayed at
  23433. double-height in certain modes. This may be fixed in the field by
  23434. deleting or renaming the sprites22 and !sprites 22 files.
  23435. 5.7
  23436. •   PC Emulator hints & tips
  23437. 5.7
  23438. 1) Deleting an unformatted or non-system PC Emulator hard disc partition
  23439. on an A5000.
  23440. 5.7
  23441. RISC-OS 3 looks at the PC hard disc partition (DOSDisc, &FC8) as if it
  23442. were a filing system and therefore before it will delete the partition,
  23443. it must look inside to find out what files are there. To be able to
  23444. delete an unformatted partition it is necessary to fool the operating
  23445. system into believing that it is not a PC partition, by changing its
  23446. filetype. However, it is not possible to change its filetype from within
  23447. the desktop and the following information gives details of how to change
  23448. the filetype from outside the desktop. The file can then either be
  23449. deleted from the command line as shown below or from the desktop.
  23450. 5.7
  23451. a) Press <F12> from the desktop to get the command line (*Prompt)
  23452. 5.7
  23453. b) Type:
  23454. 5.7
  23455. *SETTYPE ADFS::4.$.PC.Drive_C TEXT <return>
  23456. 5.7
  23457. *DELETE ADFS::4.$.PC.DRIVE_C <return>
  23458. 5.7
  23459. 2) The Archimedes keyboard has a U.S. style PC layout. You should not
  23460. therefore use KEYBUK or KEYB UK in the Autoexec batch file. Also, the £
  23461. sign on an Archimedes keyboard doesn’t exist on a PC keyboard, so to get
  23462. a £ sign you will need to enter its ASCII code 156:
  23463. 5.7
  23464. Under the emulator, hold down the ALT key and type 1 5 6 on the numeric
  23465. keypad. (Remember to have Num Lock on).
  23466. 5.7
  23467. 3) Configuration − ‘Startup Text’ − The startup text is only intended
  23468. for use with a hard disc partition, not for floppy based systems. The
  23469. problem is that the first characters of the startup text are lost
  23470. because they are taken as a reply to the ‘Insert DOS Boot Disc and press
  23471. any key’ message which you get when running the emulator from floppy
  23472. discs.
  23473. 5.7
  23474. The startup text should also not be used unless you have an Autoexec.Bat
  23475. and Config.Sys file. If you do not have these, the startup text is taken
  23476. as a reply to confirming the date.
  23477. 5.7
  23478. 4) PC Software compatibility − there are some screen redraw problems
  23479. with WordStar 4 using the !PCEmS emulator. However, no problems have yet
  23480. been reported using the large !PCEm emulator.  A
  23481. 5.7
  23482. 5.7
  23483.  
  23484.  
  23485.  
  23486. Impression Hints & Tips
  23487. 5.7
  23488. There’s no shortage of hints and tips this month and there is a special
  23489. emphasis on mail merging, printing and uses of Impression’s “save
  23490. graphics” facility.
  23491. 5.7
  23492. •    Mailmerge (1) − There have been some queries about mail merging
  23493. with Impression, so Rob Sherratt contacted Computer Concepts to outline
  23494. the problems. Rob wrote, “I have tried to use the Business Supplement
  23495. (Importer) and Impression to mailmerge a set of addresses to generate a
  23496. sheet of laser labels where each label contains successive fields from
  23497. the database. I have come to the conclusion that it can’t be done at
  23498. present − unless you tell me otherwise! I can print, say, a sheet of 24
  23499. labels for the same addressee (using a variety of methods) − but I
  23500. cannot print 24 labels for different addressees unless I enter the data
  23501. manually. Isn’t this a normal requirement for mailmerge programs?
  23502. 5.7
  23503. “It seems to me that Impulse’s ‘Merge’ command causes Impression to do a
  23504. ‘Delete then merge’ operation, coupled with a small change to Importer’s
  23505. user interface to toggle the ‘Delete vs Duplicate’ option on and off. As
  23506. well as, or instead of this, you might like to consider adding a new
  23507. pair of methods to Importer – :Importer Next record and :Importer
  23508. PrevRecord – which would allow the user to build a composite ‘24-up’
  23509. merge template where each frame in the template might contain the
  23510. following merge commands;
  23511. 5.7
  23512.    :Importer Getfield 1
  23513. 5.7
  23514.    :Importer Getfield 2 etc
  23515. 5.7
  23516.    :Importer Next Record
  23517. 5.7
  23518. On receiving the Next Record message, the Importer application would
  23519. reset its field counter to 1 and would scan forward for the start of the
  23520. next record.”
  23521. 5.7
  23522. Charles Moir agreed that !Importer would not allow different names and
  23523. addresses to be imported into different frames and thought that Rob’s
  23524. new command to move onto the next record would work, but again that’s
  23525. another improvement that will have to wait for Impression 3 (if that is
  23526. the correct title!).
  23527. 5.7
  23528. However, Charles did have this useful suggestion, “whenever we have had
  23529. a requirement to produce labels in this fashion (e.g. for mailing the
  23530. Archimedean magazine) we have gone about it in a different, and I would
  23531. suggest, a simpler way. First we create a master page that has separate
  23532. frames for each label. These are then linked together so they all form
  23533. part of one flowing story, so text will flow from one frame to another.
  23534. Presuming you have the name and address list in ASCII form with some
  23535. identifier between records − all you do is drop the file into the first
  23536. frame. All the names and addresses then flow into successive frames,
  23537. creating new pages as required. If the names and address are fixed
  23538. length records it is only a matter of making sure the label is the
  23539. correct size to hold exactly one record and it should all format
  23540. correctly. Even if the records are not the same length all that is
  23541. required is a single search and replace operation to replace the record
  23542. separator with a
  23543. 5.7
  23544.  command to make sure each new record starts in a new label.
  23545. 5.7
  23546. (If you use label sheets that have no selvedge, i.e. the whole A4 page
  23547. is divided into exactly 24 equal spaces, you just create one simple
  23548. master page whose size is just 70mm × 37.1mm. Then all you do is ensure
  23549. you have “ignore page borders” set and “fit lots” and it prints
  23550. beautifully. Ed.)
  23551. 5.7
  23552. “The only disadvantage of this system is that it loads all the names and
  23553. addresses in one go. However, we use this system for mailing 10,000
  23554. names and addresses on a standard 4M machine and so space is not a
  23555. problem. In fact, I don’t think something like !Importer would cope with
  23556. anything like that number of records satisfactorily. This method has the
  23557. advantage that you can see and edit each record individually if
  23558. required, and you can print any required range of pages or multiple
  23559. copies, etc.”
  23560. 5.7
  23561. •    Mailmerge (2) − Stuart Bell had more modest needs. He wanted to
  23562. send a basic letter with a customized “Dear ...” beginning, and an
  23563. address in a box at the bottom of each letter. His solution to create
  23564. the skeleton letter as a master page <ctrl-F2 − Edit − New Master Page>.
  23565. In this master page type everything, except the names for the salutation
  23566. (the “Dear . . .” bit). Then create two frames on the master page, one
  23567. for the name, the other for the address box, and make text flow from one
  23568. to the other.
  23569. 5.7
  23570. Now, leave the editing of the master page and return to your document.
  23571. Alter the chapter so that your newly created master page is the one for
  23572. that chapter and you will see your letter appear, with boxes for the
  23573. name and address. Type in the name of the first person, and their
  23574. address, using <ctrl-G> to advance to the next frame, as required.
  23575. Impression will generate new pages as necessary, each containing the
  23576. same letter.
  23577. 5.7
  23578. In order to make the salutation look neat, you may need to move the
  23579. ‘name’ frame on the master page, to line up “Dear” with the name. Check
  23580. this with a large scale view of your document.
  23581. 5.7
  23582. Now, the whole point of a mailing list is not to send one letter, but to
  23583. make it easier the next time you write to the same people. To change
  23584. your letter, save the original document under another name – e.g. if
  23585. originally “Letter1”, save it now as “Letter2” to avoid losing the
  23586. original letter. Then simply change the letter on the master page of
  23587. Letter2 to produce your new letter. Alternatively, create another new
  23588. master page and alter your chapter to use it.
  23589. 5.7
  23590. To produce a simple listing of your mailing list, create a master page
  23591. with many frames stacked in a vertical line (or any other close pattern
  23592. for that matter). You will then have a simple list of the names and
  23593. addresses in a tabular form.
  23594. 5.7
  23595. I know that most mailmerge packages offer more complex facilities than
  23596. this penny-pinching approach, such as selecting certain names out of a
  23597. list. However, if your needs are as basic as mine, then it certainly
  23598. beats the laborious task of producing twenty (or two hundred) virtually
  23599. identical letters manually!
  23600. 5.7
  23601. • A merge program? − On a related note, identical pleas from Peter
  23602. Blenkinsop and P Closier: “has anyone written a merge program for
  23603. Impression?” Peter has several two page documents he would like to merge
  23604. into one (longer) document, mainly for ease of printing, although he
  23605. admits that a printer queue system might do just as well. No doubt other
  23606. users would also find this useful, so has anyone cracked this particular
  23607. nut? Batch printing would undoubtedly be useful for the next release of
  23608. Impression (with perhaps the incoming document forming a new chapter),
  23609. but we do also need a proper printer queueing system for Acorn printer
  23610. drivers. (Laser Direct owners already have one. Ed)
  23611. 5.7
  23612. • Viewing clip art – Impression’s ease of manipulating and printing
  23613. Sprite and Draw files has been touched on by others but the following
  23614. may be of interest. Just as with fonts, one really needs to see a print-
  23615. out of one’s collection of clip-art files in order to pick out the one
  23616. that’s just right for a particular job. I have done this by setting up
  23617. my collection on a set of standard Impression pages laid out with 5 rows
  23618. of 4 frames, each frame filled with a clip-art object. The sheets when
  23619. printed out then provide a ready reference and can be saved economically
  23620. as Impression documents using ArcFS/Spark/Compression.
  23621. 5.7
  23622. The beauty of this is that in future you can ignore the individual clip-
  23623. art files and work from the saved Impression document. You choose the
  23624. frame you want and save it as a graphic to the RAM disc. Then drag the
  23625. icon from RAMFS to the Impression frame you have set up to receive it.
  23626. Note that you have to use the RAM disc as an intermediate stage for the
  23627. transfer. If you drag the icon directly across to the new Impression
  23628. frame you get a message to the effect that Impression cannot save a file
  23629. to itself. (Jack Evans)
  23630. 5.7
  23631. Don’t forget though that there are a number of commercial programs that
  23632. allow you to view clip art and these might be more useful if you are
  23633. constantly adding new images to your collection. Incidentally, an
  23634. earlier version of Glimpse (Sherston Software) used to hang up the
  23635. computer if presented with a DrawPlus file. I am glad to report that
  23636. this was fixed (v1.02 and later) and, although the program ignores
  23637. unknown file types, it will not cause any other problems. If you have an
  23638. early issue of Glimpse, Sherston advise you to call them for advice and
  23639. they tell me that they are further developing the program.
  23640. 5.7
  23641. • Taking graphics from documents – Paul Skirrow writes in response to
  23642. the Impression Hints & Tips by Jochen Konietzko (Archive 5.5 page 41)
  23643. and also makes use of the save graphics facility. It is true that
  23644. graphics cannot be edited within Impression, but it is a simple matter
  23645. to click on the graphic frame to select it and then use the <save
  23646. graphic> option on the document menu (or use <shift-ctrl-T>). I rarely
  23647. bother keeping separate copies of graphics files now, I just save them
  23648. from Impression directly into Draw, modify them and then save them back
  23649. again. (With PipeDream, things are different as it does not take its own
  23650. copy of the graphics file, but simply stores the filename, so modifying
  23651. the file on disc will change the image in the PipeDream document.)
  23652. 5.7
  23653. It is true that the draw files are stored within the document directory
  23654. (called story1, story2, etc), but they should not be edited because
  23655. Impression stores information about them elsewhere (in the !DocData
  23656. file). It is possible to crash the entire system by modifying a graphics
  23657. file within an Impression document. I have always regarded Impression
  23658. documents as no-go areas − they belong to Impression and use Computer
  23659. Concepts’ own format which is not published and which could be changed
  23660. between Impression versions.
  23661. 5.7
  23662. The only disadvantage with using the <save graphic> option is that it
  23663. always saves the graphic as a draw file, even if it is a sprite. If you
  23664. want to edit a sprite, you must therefore drag the draw file from
  23665. Impression to Draw, select the object and then use the <save sprite>
  23666. option on the save menu to save into Paint. This is clumsy, especially
  23667. if memory is short, in which case you will have to save the intermediate
  23668. files to disc before loading into Paint. Computer Concepts do this
  23669. mainly to simplify the inner working of Impression (it means everything
  23670. can be regarded as a Draw file which may contain sprites). Another
  23671. argument for using Draw files to hold sprites is that they contain
  23672. absolute size information, whereas the sprite format does not. It
  23673. therefore makes a lot of sense for scanners to produce Draw files
  23674. containing the scanned sprite together with absolute size information
  23675. describing the resolution of the scanned image. The <save graphic> menu
  23676. item only appears when a graphic frame is selected (whereas the RISC-OS
  23677. guidelines suggest that unavailable menu items should be shaded so that
  23678. the user knows they are there).
  23679. 5.7
  23680. Could Impression be made to pass graphics files to Draw and Paint when
  23681. they are double clicked? Perhaps Computer Concepts would be prepared to
  23682. implement this. I also think that there should be an easy way of
  23683. transferring data between applications generally without bringing up a
  23684. save menu. I know that we are all used to it now, but it is not really a
  23685. “save” operation that you are doing when transferring things between
  23686. applications, and the filename is certainly irrelevant when you are not
  23687. saving to a filer window. One approach, adopted by Squirrel, is to make
  23688. a click-drag from a Squirrel window to another application transfer the
  23689. data by doing a save automatically. This is extremely useful in Squirrel
  23690. and means that an address can be transferred to a letter very quickly
  23691. without using a menu. I have also adopted this technique in some of my
  23692. programs where <click-drag> is not used for something else, but
  23693. unfortunately, many programs use <click-drag> for their own operation.
  23694. What do other people think? Could we standardise on a <shift-drag> or
  23695. <alt-drag> to do a save. (This would also work with filer windows using
  23696. the default or last filename).
  23697. 5.7
  23698. •   Styles used and unused − When I am preparing the magazine, I use one
  23699. big file that contains all the things like hints & tips, comments, small
  23700. ads, products, etc, so I am forever importing new bits of text into it
  23701. and then exporting them back out into the magazine. This means that the
  23702. style list grows longer each month so, every now and then, I remove
  23703. unwanted styles. To do this, I select the whole text with <ctrl-T> and
  23704. pull up the edit styles window with <ctrl-F6>. I click on the style
  23705. selection menu button and there is a list showing which styles, in the
  23706. whole story, are used and which are unused. I can then select and delete
  23707. the ones that aren’t needed (remembering to click the delete button with
  23708. <adjust> so that the window stays on-screen).
  23709. 5.7
  23710. Sometimes, I want to remove a style completely even though it is being
  23711. used. If so, I select all the text, pull up the style menu and click on
  23712. the style to be removed. That will remove all occurrences of it. Don’t
  23713. forget though that a style may also be used on a master page, in which
  23714. case it will not delete. This can actually be put to good advantage
  23715. because I don’t want to accidentally delete, say, “bold” just because it
  23716. is not used in the file as it stands. To prevent accidental deletion,
  23717. create a new dummy master page, create a text frame and type in a few
  23718. choice words and give them the styles that you want to maintain
  23719. permanently within the document. They cannot now be deleted acciden
  23720. tally. − PB
  23721. 5.7
  23722. •   Kerning − On Impression, kerning is extremely easy to achieve,
  23723. especially with the keyboard short-cuts. If you want to (R)educe the
  23724. space between adjacent characters, simply put the cursor between the two
  23725. characters and type <ctrl-R> a number of times. If you over do it,
  23726. simply (E)xpand the space a bit using <ctrl-E>. If you can’t make a fine
  23727. enough adjustment with <ctrl-R> and <ctrl-E>, go through the menu
  23728. options to call up the kerning menu and adjust the number. Remember that
  23729. if you want to try a particular number without losing the kerning
  23730. window, click on Set with <adjust>, not <select>. For vertical kerning,
  23731. use <ctrl-U> to move the text (U)p and <ctrl-J> to er... (J)ump
  23732. downwards?! (Can anyone think of a better mnemonic?)
  23733. 5.7
  23734. The trouble with kerning being so easily available is that it’s easy to
  23735. hit <ctrl-R, E, U or J> by accident. I have tried to use search and
  23736. replace to locate any spurious kerning in a document but cannot find any
  23737. way to do it. You can, of course, export the text with styles and load
  23738. the text into Edit and search for “{but I would have liked a simpler
  23739. way. Any ideas? Still, if you can see roughly where the spurious kerning
  23740. appears, simply go through the menu to get the kerning window up on
  23741. screen and use cursor left and cursor right to move the cursor around
  23742. through the suspect areas. If you move past a kerning statement, the
  23743. numbers will flick up in the kerning window. To remove the kerning,
  23744. click <adjust> on the Clear button and go back to using the cursor keys
  23745. to search for other kerning statements, finally clicking <select> on
  23746. Clear. − PB
  23747. 5.7
  23748. •   Impression speed users’ tips − (Reprinted from Archive 5.5 where the
  23749. last two lines were accidentally omitted!) I find that having got into
  23750. the habit of using <adjust> for reverse scrolling, it really does save
  23751. time, especially when I am laying out the magazine and the screen is
  23752. cluttered with windows. Just press <select> to scroll down and switch
  23753. quickly to <adjust> to go back up again without having to move the mouse
  23754. and locate the other end of the scroll bar − which could be under
  23755. another window anyway.
  23756. 5.7
  23757. Also, <adjust> can be extremely useful, again with a cluttered screen,
  23758. for moving windows whilst keeping them where they are relative to the
  23759. other documents. It takes practice, but it speeds things up in the long
  23760. run. − PB
  23761. 5.7
  23762. •   Search & replace on styles − Impression appears to have the facility
  23763. to search and replace on styles. Indeed, you can search for a style
  23764. using {name” }@, where @ is the wildcard for “any text” but, sadly, you
  23765. cannot replace with another style name, despite the fact that there is a
  23766. menu button on the Search & Replace window to allow you to put a style
  23767. name into the Replace box. I don’t know why CC haven’t implemented this
  23768. facility. They obviously intended to do so because the menu button on
  23769. the Replace box has no other purpose − as it stands, it is totally
  23770. redundant. Perhaps it could be implemented in Impression III but, in the
  23771. meantime, you can do it in Edit, though it’s a bit cumbersome.
  23772. 5.7
  23773. Suppose, for example, that you have a document with various headings all
  23774. using “Heading” (marked on <F2> as Sub-heading) and that you want to
  23775. change some of them to a sub-sub-heading, let’s call it “SubHead”. What
  23776. you will have to do is to click somewhere in the text and use <shift-
  23777. ctrl-T> to save the text. Save it with styles, perhaps into a ram disc.
  23778. Then load that into !Edit and use search & replace to, selectively,
  23779. change  into . (The reason for using  is to catch, in one go,  ON} and 
  23780. OFF} and } all of which can occur in the document.)
  23781. 5.7
  23782. To get it back into the original document, click back in the main text
  23783. in the Impression document, select the whole text with <ctrl-T>, set it
  23784. all back to base text with <ctrl-B>, delete it and then go back to the
  23785. Edit document and save the text into the Impression document. Remember
  23786. though to save the document before you start messing about with it in
  23787. this way. You can get in an awful mess if you edit the text file
  23788. incorrectly.
  23789. 5.7
  23790. If CC can’t add the style search & replace feature into Impression,
  23791. perhaps someone could produce a simple editing application for us. As
  23792. the Impression text is loaded into it, it would create a list of the
  23793. styles available then it would allow you to search and replace using a
  23794. menu to provide you with a list of the styles it knows about. Could
  23795. someone write that for us, please? If you’d like to have a go, get in
  23796. touch with me at Archive. − PB
  23797. 5.7
  23798. •   Style problems − When I am preparing the magazine, I save the text of
  23799. each of the articles, with styles, as edit files in one directory. I
  23800. then have a dummy Archive magazine document into which I insert the
  23801. various edit files. If I have a particular space to fill, say about a
  23802. page and a half, I link together the title frame and the text frames
  23803. that are to make up the article. I know roughly how long each article
  23804. is, so I drop one of the edit files into the title frame. Sometimes, it
  23805. turns out to be just too short or too long and I want to delete it, but
  23806. if I just mark it with <ctrl-T> and delete it and then drop in another
  23807. edit file, I find that the whole text ends up in the same style as the
  23808. main heading − then it really is too long! As far as I am concerned,
  23809. this is a bug in Impression. Anyway, the “work-around” is to mark the
  23810. whole text and press <ctrl-B> first, to change it all back to base
  23811. style, before deleting the text. On a long file, especially if a lot of
  23812. it is displayed on screen, this can take quite a time. Does anyone know
  23813. a quicker work-around?
  23814. 5.7
  23815. Also, I find that, fairly often, the title is left justified instead of
  23816. centred as its style specifies. If I click on the title, type a single
  23817. character and delete it, it springs back to the centre − another bug,
  23818. but one that’s easy to get round. − PB
  23819. 5.7
  23820. •   RTF loader − To transfer WP files from the Mac (or PC versions of
  23821. Microsoft Word, I guess) you can use the RTF (rich text format) loader
  23822. that comes with the Impression Business Supplement. The RTF loader is
  23823. fairly intelligent and knows to swap things like ë into ’ because the
  23824. fonts on Mac and Archimedes use some different ASCII numbers. However,
  23825. unless it has been fixed, it sometimes hangs up with some of these “top-
  23826. bit-set” characters. For example, I was trying to transfer a cook book
  23827. and it hung up (the whole machine!) every time it came across a degree
  23828. symbol as in 100°C. The answer was to search and replace the degree
  23829. symbol into, say, an equal sign or some other character not used in the
  23830. text, transfer with the RTF loader and then search and replace back
  23831. again. (Some of you may have noticed the repeated occurrence of ë
  23832. instead of ’ in one of Risc User’s articles last month − I guess they
  23833. are still using Macs for their magazine and the Archimedes to Mac
  23834. conversion is not as intelligent.) − PB
  23835. 5.7
  23836. • Blank pages printed − If your printer sometimes prints blank pages (as
  23837. Patrick Dowling explained in Archive 5.6) it is probably because the
  23838. printer driver’s bottom margin is set too small. The printer drivers
  23839. send all the data they are told to send for the page and then send a
  23840. form feed character. If they send so much that the printer just goes on
  23841. to its next page and the driver then sends a form feed character the
  23842. printer will eject a sheet. Make sure that the printer’s DIP switches
  23843. are set to disable perforation skip and check any others which determine
  23844. the page size. When entering the bottom margin into the printer driver’s
  23845. paper size entry, it is important to be on the conservative side and
  23846. make this a fraction larger than you think it ought to be (by a couple
  23847. of mm). The only disadvantage to this is that you will lose the ability
  23848. to print in this borderline area, but at least you will avoid the
  23849. mysterious blank pages which can otherwise occur. Unfortunately, printer
  23850. manuals are notoriously awkward, especially when you are looking for the
  23851. top and bottom margins, and most of the printer drivers are supplied
  23852. with the incorrect default settings (to be fair, some drivers are
  23853. written for a range of printers which each have their own unique paper
  23854. margins).  Paul Skirrow.
  23855. 5.7
  23856. (I passed this hint on to one of our Technical Help Service members a
  23857. couple of weeks ago and she confirmed that it worked. All she did was to
  23858. increase the paper size from 297.00 mm to 299.00 mm and she got no more
  23859. blank pages. Ed.)
  23860. 5.7
  23861. • Entering special characters into Impression − There is an updated
  23862. version of !Chars on this month’s disc which can enter special charac
  23863. ters into Impression without needing to tell Impression which font they
  23864. came from. It works just like Chars (or NewChars2 to be precise) and
  23865. provides quick selection of common fonts (Dingbats, Symbol, System and
  23866. Trinity) as well as passing the font information to Impression in DDF
  23867. form. Note that RISC-OS 3 defines the system font to be the same as the
  23868. Latin 1 fonts, complete with the “ and ” characters, but RISC-OS 2
  23869. doesn’t, so it will help if you use the new System font provided on the
  23870. Archive 5.6 program disc if you are using RISC-OS 2.  Paul Skirrow.
  23871. 5.7
  23872. •   PC file transfer − Impression saves text files with an LF-CR termina
  23873. tor rather than the CR-LF terminator which is used by most PC programs.
  23874. This can confuse a lot of PC programs which automatically ignore the
  23875. first character after a LF (which they expect to be a CR), and Computer
  23876. Concepts have agreed to fix this some time.  Paul Skirrow.
  23877. 5.7
  23878. In the meantime, you can presumably use !Edit’s search & replace
  23879. facility to change \x0A\x0D into \x0D\x0A remembering to set the magic
  23880. characters to ON. Ed
  23881. 5.7
  23882. Ovation Hints and Tips
  23883. 5.7
  23884. • Master documents – Hilary Ferns has sent details of master documents
  23885. she has created for use with Ovation. Her design for A4 and A5 letters
  23886. will be particularly useful for newcomers to either DTP or Ovation, and
  23887. her templates for an A5 four sided leaflet, an A5 booklet, A6 leaflet
  23888. and a greetings card or notelet are valuable time savers. With Hilary’s
  23889. permission they are on this month’s program disc in Ovation format, but
  23890. here is just one example of how Hilary used Ovation to produce an A5
  23891. four sided leaflet.
  23892. 5.7
  23893.  
  23894. 5.7
  23895. This is the format of our weekly church news-sheet, which displays news
  23896. about all the events in bordered frames − rather like the ads page of
  23897. the local newspaper. It is printed on A4 paper, photocopied and folded
  23898. neatly in half.
  23899. 5.7
  23900. I use an HP Deskjet 500 printer, so all the margin settings are based on
  23901. this. Printer paper size is A4.
  23902. 5.7
  23903. 1. Set up a new document with the following settings:
  23904. 5.7
  23905.       A4
  23906. 5.7
  23907.       Landscape
  23908. 5.7
  23909.       Single-sided
  23910. 5.7
  23911.       2 columns
  23912. 5.7
  23913.       Gutter 24mm
  23914. 5.7
  23915. Margins – Top 12mm, Left & Right 12mm, Bottom 8mm
  23916. 5.7
  23917. 2. Open up the Master page for your document and include on this any
  23918. regular heading, logo, etc. that you may require. We always have our
  23919. church logo at the top of the front page, together with a “welcome”
  23920. greeting. These are placed in picture frames at the top of the right-
  23921. hand column, i.e. the front of the leaflet when it is eventually folded.
  23922. 5.7
  23923. 3. Obviously, page two will not want these headings, so you will now
  23924. need to create a new chapter (“New Chapter − After current Chapter”) and
  23925. specify chapter two starting at page two (“Modify chapter”). Delete your
  23926. frames from page two. Remember too to think about any paragraph styles
  23927. that you are likely to use.
  23928. 5.7
  23929. 4. Go back to your document and delete the existing pages one and two.
  23930. You will now have a simple document with two A4 sheets, each with 2
  23931. columns and a wide gutter. Within this framework you can create text and
  23932. picture frames, making sure they do not overlap the central guidelines.
  23933. I tend to display most of my text in individual text frames with
  23934. borders, often with a nested picture frame for a picture or “FontFX”
  23935. generated heading. Only rarely do I type directly into the principal
  23936. text frame.
  23937. 5.7
  23938.  
  23939. 5.7
  23940. 5. You may want to have text which flows from one page to the next.
  23941. However, using the principal text frame, the text will not flow back up
  23942. to the “back” page of the leaflet. To do this you will need to create a
  23943. text frame to fit within each column and use the “link” tool to flow the
  23944. text from the front, to the middle and onto the back. This is quite
  23945. simple to work out. (see diagram).
  23946. 5.7
  23947. 6. Save your stylesheet. Printing out such a document is straightfor
  23948. ward. Change to “landscape” on the “Print setup” before saving
  23949. stylesheet.
  23950. 5.7
  23951.  
  23952. Hints and Tips
  23953. 5.8
  23954. •   A5000 filing system problems − There have been more comments about
  23955. problems with losing files on the A5000. We suggested last month that
  23956. you take Acorn’s advice and configure the ADFSbuffers to zero. In the
  23957. light of further experience, we would suggest it even more strongly.
  23958. This problem occurred with Impression but we have had reports that it
  23959. also happens with other software. You have been warned. Ed.
  23960. 5.8
  23961. David Pilling adds... In the last Archive, you had a piece from someone
  23962. saying that it is necessary to *configure ADFSBuffers 0 to make Acorn
  23963. DTP and Impression work properly. The official line according to Beebug,
  23964. is that unless A5000’s are configured like this, they will corrupt their
  23965. hard discs sooner or later. There are well documented cases of this
  23966. occurring. In addition, many programs, ArcFS and the Beebug hard disc
  23967. backup for example, won’t work unless ADFSbuffers are set to zero.
  23968. 5.8
  23969. It is also common advice to load the SerialUtils module before attempt
  23970. ing to use comms programs. The naive point of view is that SerialUtils
  23971. does something clever that allows buffers to work. That is not so,
  23972. SerialUtils actually prevents buffers from doing anything. It is
  23973. therefore much more efficient to stop your comms program from loading
  23974. any buffer and not bother with SerialUtils. SerialUtils will apparently
  23975. also prevent things like printer buffers from working.
  23976. 5.8
  23977. New versions of Hearsay cope with all this automatically and there is a
  23978. version that uses the buffer manager built into RISC-OS 3. However, we
  23979. are still having discussions with Acorn over whether this works properly
  23980. in RISC-OS 3 as fitted to the A5000.  David Pilling, Blackpool.
  23981. 5.8
  23982. •   A5000 second floppy drive − In Archive 5.6 p12, it said that if you
  23983. were putting an external 5¼“ drive onto an A5000 it should be connected
  23984. into the middle socket of the three. That is not correct. It should go
  23985. into the one farthest East. The internal drive goes in the middle one.
  23986. The other point to note is that it said the external drive can be set to
  23987. ID zero or one. That it true but it should perhaps should have been
  23988. spelt out more clearly that it should NOT be set to either two or three.
  23989. If it is, it will not work properly. Ed.
  23990. 5.8
  23991. •   Adjust clicking (RISC-OS 3) − Most people will, by now, have cottoned
  23992. on to the idea that clicking open a directory with <adjust> closes the
  23993. parent directory viewer and that clicking the close button with <adjust>
  23994. opens up the parent. One extension of this on RISC-OS 3 is that clicking
  23995. the close button with <adjust> while holding down <shift> doesn’t
  23996. actually close the window but does open up the parent directory.
  23997. 5.8
  23998. •   Directory date stamps − When copying a directory and its contents, the
  23999. destination directory is created with the current date stamp, as opposed
  24000. to being created and then stamped with the date of the source object.
  24001. (Looking through the PRM I haven’t been able to find a way of stamping a
  24002. file to a date other than that held in the real time clock.)
  24003. 5.8
  24004. In the case of application directories, the application directory’s date
  24005. stamp appears to be copied through, but on closer inspection this is not
  24006. so. The application directory is created with the current date stamp (as
  24007. for normal directories) however, the date which the filer presents the
  24008. user (for the date of the application directory) is actually the date
  24009. stamp of the !RunImage file.
  24010. 5.8
  24011. RISC-OS 3 automatically detects an attempt to move from one directory to
  24012. another on the same media, and performs a Rename operation instead of a
  24013. copy, whereby the date is retained. (Possibly, RISC-OS 3 also has a
  24014. facility for stamping a filer object with a specified date, although I
  24015. will not know about this until the RISC-OS PRM is released!)  D
  24016. Lenthall, London.
  24017. 5.8
  24018. •   Exiting the desktop (RISC-OS 3) − With RISC-OS 2, you could set up an
  24019. obey that would exit the desktop by making the last line:
  24020. 5.8
  24021. FX 138,0,252
  24022. 5.8
  24023. and as long as no text was output by the obey file, the desktop would be
  24024. exited. The same can be done with RISC-OS 3 by placing the above line in
  24025. the obey file twice. It also works with the keys, press <shift−ctrl−F12>
  24026. twice and the desktop is exited. Also when <shift−ctrl−F12> has been
  24027. pressed F12 (*Commands) and <ctrl−F12> (Task Window) still work!
  24028. Warning: If you do use this then the ADFS will be reset, losing the
  24029. current directory.  P Bedford, Peterborough.
  24030. 5.8
  24031. •   Extra validation flags − With RISC-OS 3, a number of new validation
  24032. flags are available for when you are designing window templates. So far
  24033. I have found the following:
  24034. 5.8
  24035. Border Flags − these require the border flag to be set on and give an
  24036. icon a 3D border similar to Impression’s, they all begin with a B (or b)
  24037. and are followed by a number to give the border type:
  24038. 5.8
  24039. 0   Single raised border.
  24040. 5.8
  24041. 1   Double border for grouping.
  24042. 5.8
  24043. 2   Triple border for default action icons.
  24044. 5.8
  24045. 3   Triple border for writable icons.
  24046. 5.8
  24047. 4   Single recessed border.
  24048. 5.8
  24049. 5   Standard single line border.
  24050. 5.8
  24051. 6   Triple recessed border similar to type 3.
  24052. 5.8
  24053. Border type 0 and 3 can be followed by a comma and then a number between
  24054. 0 and 15 to define the colour to slab to.
  24055. 5.8
  24056. Pointer definition − you can define an icon so that the pointer changes
  24057. shape when over the icon. This is done by placing a P (or p) in the
  24058. validation string followed by the name of the sprite containing the
  24059. pointer shape. Try sprite ptr_double.
  24060. 5.8
  24061. Many others may be available with other parameters for the above options
  24062. but until the RISC-OS 3 Programmers’ Reference Manual is available we
  24063. won’t really know. Most of the above is available in RISC-OS 2 by using
  24064. the Interface module by Simon Huntington.  P Bedford, Peterborough.
  24065. 5.8
  24066. •   Iconised windows with Impression (RISC-OS 3) − If you want to
  24067. distinguish Impression documents that have had their windows iconised,
  24068. generate an icon called ‘ic_impressio’ and place it in the !Sprites file
  24069. in the !Impress directory. Mine is the Impression quill & pot in a
  24070. window (ic_?).  P Bedford, Peterborough.
  24071. 5.8
  24072. •   Menon hotkey − If you use Menon’s hotkey facility, a problem can arise
  24073. in that it may not work if you have a window open that contains the
  24074. caret (e.g. Impression). However, it will work if you hold the alt key
  24075. down at the same time as the hotkey i.e. <alt-ctrl-H>. P Bedford,
  24076. Peterborough.
  24077. 5.8
  24078. •   Oak drives with Acorn SCSI card − If you are using an Oak drive with
  24079. an Acorn SCSI card (e.g. if you own an A540), you may find that you are
  24080. unable to dismount the drive and that you get a ‘Bad parameters’ error.
  24081. 5.8
  24082. Hard drives that are formatted using an Oak SCSI card include additional
  24083. information in the boot block which the Acorn card objects to. To solve
  24084. these problems (especially annoying with removable hard drives!), you
  24085. will have to format the disc with Acorn’s SCSIDM.
  24086. 5.8
  24087. Unfortunately, it is not that simple. When the desktop is started up,
  24088. the Acorn card looks at all of the drives that are available. Once it
  24089. sees an ‘incorrectly’ formatted Oak disc, it will not allow SCSIDM to
  24090. access the drive. This means that you will have to start up outside of
  24091. the desktop in order to format the disc. This can be done by typing
  24092. *Configure Language 0 <return> from the command line and then pressing
  24093. <ctrl-break>.
  24094. 5.8
  24095. Once this has been done, you can format your drive in the usual way −
  24096. see pages 11-12 of the SCSI Expansion Card User Guide.
  24097. 5.8
  24098. To start up in the desktop again, simply type *Configure Language 4
  24099. <return> from the command line and then press <ctrl-break>.  Adrian
  24100. Look, N.C.S.
  24101. 5.8
  24102. •   PC file transfer revisited − When transferring text files from PC to
  24103. the Archimedes (or vice versa), it is necessary to convert the carriage
  24104. returns (CRs) to line feeds (LFs) and vice versa. This can be done using
  24105. the search and replace facility of Edit, but it is much quicker just to
  24106. use the in-built transfer ‘CR<->LF’ which is available from the ‘Edit’
  24107. submenu or to press <F8>.  G Riley, Cheshire.
  24108. 5.8
  24109. •   PC screen fonts revisited − In Archive 4.12 p10 there was a hint that
  24110. explained how to change the screen font of the PC Emulator to any BBC
  24111. screen font. Since then, the program has been updated to include EGA+
  24112. and ECD definitions.
  24113. 5.8
  24114. The EGAROM looks to contain two sets of character definitions: EGA+ 16×8
  24115. cells and ECD 14×8 cells, as opposed to the ROM file which (amongst
  24116. other things) contains the 8×8 cells used in the other modes. The
  24117. following program will convert these character sets for EGA+ and ECD
  24118. modes in a similar manner to my previous program:
  24119. 5.8
  24120. REM >EGAFONT
  24121. 5.8
  24122. REM Merge BBC FONT file into !PC EGAROM file
  24123. 5.8
  24124. REM NB. *** COPY ORIGINAL EGAROM FILE BEFORE RUNNING THIS ***
  24125. 5.8
  24126. :
  24127. 5.8
  24128. ON ERROR REPORT:PRINT“ at line ”;ERL :CLOSE#0:END
  24129. 5.8
  24130. DIM rom% &2000,C%(7)
  24131. 5.8
  24132. R$=“:4.!PCEM.EGAROM”
  24133. 5.8
  24134. OSCLI(“*LOAD ”+R$+“ ”+STR$~rom%)
  24135. 5.8
  24136. :
  24137. 5.8
  24138. F%=OPENIN(“:4.BBCFONTS.NEWFONT”):REM File of type &FF7
  24139. 5.8
  24140. :
  24141. 5.8
  24142. REPEAT
  24143. 5.8
  24144. A%=BGET#F%
  24145. 5.8
  24146. IFA%<>23THENPRINT“This is not a BBC font file!”:END
  24147. 5.8
  24148. O%=BGET#F%:PRINT“Char &”;~O%;“ ”;: VDU23,255
  24149. 5.8
  24150. REM  EGA+ chars 16x8 − double horiz. thickness
  24151. 5.8
  24152. P%=O%*16
  24153. 5.8
  24154. FORI%=0TO7
  24155. 5.8
  24156. C%(I%)=BGET#F%:C%=C%(I%):VDUC%
  24157. 5.8
  24158. REM − assemble 8x8 char array
  24159. 5.8
  24160. rom%?(P%+2*I%)=C%
  24161. 5.8
  24162. rom%?(P%+2*I%+1)=C%
  24163. 5.8
  24164. NEXT
  24165. 5.8
  24166. VDU255:PRINT
  24167. 5.8
  24168. REM  ECD chars 14x8 − blank first and last three rows
  24169. 5.8
  24170. P%=&1000+O%*14
  24171. 5.8
  24172. rom%?(P%+0)=0:rom%?(P%+1)=0
  24173. 5.8
  24174. rom%?(P%+2)=0
  24175. 5.8
  24176. FOR I%=0TO7:rom%?(P%+3+I%)=C%(I%): NEXT
  24177. 5.8
  24178. rom%?(P%+11)=0:rom%?(P%+12)=0
  24179. 5.8
  24180. rom%?(P%+13)=0
  24181. 5.8
  24182. UNTIL EOF#F%
  24183. 5.8
  24184. CLOSE#0
  24185. 5.8
  24186. :
  24187. 5.8
  24188. OSCLI(“*SAVE ”+R$+“ ”+STR$~rom%+
  24189. 5.8
  24190. “ + 2000”)
  24191. 5.8
  24192. END
  24193. 5.8
  24194. This program has been tested in both modes by squeezing every last byte
  24195. out of my A3000 and through the use of the PD multisync ‘emulator’ − I
  24196. could just about stand the flickering! The ECD characters are a little
  24197. smaller due to the difficulty in mapping the default 8 onto 14 rows,
  24198. however, it does result in greater line spacing and arguably improves
  24199. readability.
  24200. 5.8
  24201. Finally, I suppose that if anyone needs to redefine the MDA1 outline
  24202. font (has anyone found anything which uses the MDA mode?), they could
  24203. use !FontEd or a similar application to change the font name of their
  24204. preferred outline font to MDA1. The MDA0 font would appear to contain
  24205. definitions for the ‘additional’ IBM character set and, as such, is less
  24206. likely to require redefinition.  P Bready, Glasgow.
  24207. 5.8
  24208. •   Printer buffers − RISC-OS 3 provides a configurable printer buffer.
  24209. Use the command:
  24210. 5.8
  24211. *Configure PrinterBufferSize <n>K
  24212. 5.8
  24213. to set the buffer size to <n> K in length. This does not seem to be used
  24214. by the RISC-OS 3 printer drivers but is used outside the desktop
  24215. environment. To check the buffer has been configured, perform a <ctrl-
  24216. reset> after the configure command, go into Basic and type:
  24217. 5.8
  24218. PRINT ADVAL(-4)
  24219. 5.8
  24220. the result will be the size of your printer buffer.  P Bedford,
  24221. Peterborough.
  24222. 5.8
  24223. •   Translator tips − Translator can easily be used to convert a sprite
  24224. from one screen mode to another. From the Translator menu, simply
  24225. deselect the ‘Pop up > Auto mode’ option, and then select the ‘Process >
  24226. Sprite output > Output mode > Current’. Select the desktop mode for the
  24227. output sprite and drag the sprite to be converted onto the Translator
  24228. icon. Finally, save the converted sprite from ‘Misc > Save > Full’
  24229. option.
  24230. 5.8
  24231. When printing foreign graphics files on a monochrome printer, better
  24232. results can be obtained by selecting the ‘Black and white’ option from
  24233. the Translator menu i.e. the sprite is converted into 256 grey scales.
  24234. (I think this is because there is less distortion of the colours than
  24235. when fitting the sprite to the 256 desktop colours available and then
  24236. the printer driver using ColourTrans to convert them to monochrome
  24237. information.) C Paul, Manchester.
  24238. 5.8
  24239. •   Waiter and MultiFS clash − You can’t run The Data Store’s Waiter with
  24240. the version of MultiFS that comes with the new PC Emulator. You must
  24241. quit Waiter before running MultiFS.  J Thompson.
  24242. 5.8
  24243. •   Window bug (RISC-OS 3) − There is a bug in the windows redraw routine.
  24244. If you use !FormEd to define a window with a vertical scroll bar, no
  24245. horizontal scroll bar and no size icon, then turn on the horizontal
  24246. scroll bar, being careful not to cover where the size icon would be with
  24247. the menu, you will see that no box is redrawn in the area where the size
  24248. icon should be. If you drag other windows over this window the result is
  24249. a mess in the area where the size icon should be. As this example shows,
  24250. the result is not as expected.  P Bedford, Peterborough.
  24251. 5.8
  24252. •   Window movement (RISC-OS 3) − If you use <adjust> in the scroll bar
  24253. areas to provide reverse movement, you may find useful the facility for
  24254. complete window scrolling. If you click adjust and hold on either slider
  24255. bar, the pointer vanishes and if you move the mouse, the window is
  24256. scrolled in the same direction. This only works if both scroll bars are
  24257. on a window.  P Bedford, Peterborough.  A
  24258. 5.8
  24259. 5.8
  24260.  
  24261.  
  24262.  
  24263. Image-setting
  24264. 5.8
  24265. Hints & Tips
  24266. 5.8
  24267. •   Make sure you ask the image-setting bureau to produce films in a form
  24268. that your printer can use. e.g. Can he use ‘right reading positive’?
  24269. 5.8
  24270. •   Only use high quality PostScript fonts such as the range from EFF –
  24271. mistakes can be expensive.
  24272. 5.8
  24273. •   Ensure that the client ‘accepts’ a bromide ‘proof’ before having the
  24274. work printed.
  24275. 5.8
  24276. •   Scanning − if you do your own scanning, rather than having it done via
  24277. a bureau, use the lowest possible scanning resolution that is consistent
  24278. with the screen resolution being used by the printer − i.e. a 150 l.p.i.
  24279. screen (a typical value for high quality magazines) requires no more
  24280. than 150 dots per inch scan, assuming a reproduction ratio of 1:1.  A
  24281. 5.8
  24282.  
  24283. Hints and Tips
  24284. 5.9
  24285. •   Auto-destruct! − There are applications, like Impression, that have an
  24286. auto-save facility. Auto-save is a very helpful facility and I use it
  24287. myself but, with Impression (and perhaps other applications), there is
  24288. an option to auto-save without prompt. In other words, every few
  24289. minutes, without you being able to stop it, it will save the current
  24290. document on top of the original document on disc. If you can’t already
  24291. see the danger of this, an anecdote might help...
  24292. 5.9
  24293. Tord Eriksson sent an article (over 400k long including various draw
  24294. files) all the way from Sweden on a single floppy disc and there was no
  24295. space on the disc for a duplicate copy of the document. I loaded the
  24296. article and was playing around with it prior to editing it for the
  24297. magazine. I was trying to see if the text was all one story and so had
  24298. cut and pasted various bits when suddenly I got the message “The file
  24299. has just been saved”. Fortunately, I hadn’t actually deleted anything
  24300. important just prior to the auto-save, but it does go to show that you
  24301. should never send a file to someone else having left the preferences set
  24302. to auto-destruct, sorry, I mean auto-save. Ed.
  24303. 5.9
  24304. •   Compression − Contrary to the review of Compression in Archive 5.2
  24305. (page 57) it is possible to initiate cfs directory displays from script
  24306. files. This might prove useful for those who want to use cfs as the
  24307. default filing system and who want to automatically display the root
  24308. directory on switching on the Archimedes. The problem is that the line,
  24309. 5.9
  24310. Filer_OpenDir CFS#SCSI::Work.$
  24311. 5.9
  24312. will not work unless the CFSmodule is active and it is inadequate to
  24313. simply run the !CFS application before this line in the script file. The
  24314. trick is to set up a !Boot application (as always) and to use this
  24315. application’s !boot (or !run) file to load the CFSmodule and activate it
  24316. before calling the script file. Assuming the !CFS application is hidden
  24317. away on the hard disc in the directory $.Utils. Filehndlng, this can be
  24318. achieved using the following commands:
  24319. 5.9
  24320. |Load CFS
  24321. 5.9
  24322. RMEnsure CFSModule 1.10 RMLoad $.Utils.Filehndlng.!Cfs .CFSModule
  24323. 5.9
  24324. RMEnsure CFSModule 1.10 Error CFSModule not loaded
  24325. 5.9
  24326.  
  24327. 5.9
  24328. |Initialise CFS and set the
  24329. 5.9
  24330. |scratch dir for it to use
  24331. 5.9
  24332. |in handling files
  24333. 5.9
  24334. NewCFS SCSI:4
  24335. 5.9
  24336. CFStemp SCSI::Work.$.!System
  24337. 5.9
  24338. |The !cfs !boot file should be
  24339. 5.9
  24340. | run to allow the correct icons
  24341. 5.9
  24342. | to be “seen” by the system:
  24343. 5.9
  24344. $.Utils.Filehndlng.!Cfs.!Boot
  24345. 5.9
  24346.  
  24347. 5.9
  24348. | run desktop, load applications
  24349. 5.9
  24350. | and display root directory
  24351. 5.9
  24352. Desktop -file <HardBoot$Dir> DeskBoot
  24353. 5.9
  24354. The script file, in this case called DeskBoot, used to load the
  24355. applications and open the root directory should be something like this:
  24356. 5.9
  24357. Run <r>!System
  24358. 5.9
  24359. Run <r>!Scrap
  24360. 5.9
  24361. Run <r>!FontsPlus
  24362. 5.9
  24363. Run <us>!StickyBD
  24364. 5.9
  24365. Run <um>!Alarm
  24366. 5.9
  24367. Run <uf>!Dustbin
  24368. 5.9
  24369. Filer_OpenDir CFS#SCSI::Work.$
  24370. 5.9
  24371. The commands “*Newcfs” and “*CFStemp” are not documented in the
  24372. Compression manual but are explained in sufficient detail in the *Help
  24373. feature of the CFSmodule itself. (Type *help cfsmodule for a list of the
  24374. commands, then do a *help for each individual command for more details.)
  24375. 5.9
  24376. There is an example !boot application on the monthly program disc.  Rob
  24377. Wears, Birmingham.
  24378. 5.9
  24379. •   Speeding up SQuirreL − If, like me, you often have lengthy queries and
  24380. reports for the SQuirreL database to perform, you may have wondered why
  24381. it makes no difference at all when you drag the table in question onto a
  24382. RAM disc.
  24383. 5.9
  24384. The reason for this is that SQuirreL makes extensive use of the !Scrap
  24385. application; if you copy this, too, to the RAM disc and double click on
  24386. it, the hard disc will be silent.
  24387. 5.9
  24388. Just don’t forget to double click onto the version of !Scrap on your
  24389. hard disc when you remove the RAM disc! 
  24390. 5.9
  24391. Jochen Konietzko, Köln, Germany.  A
  24392. 5.9
  24393. 5.9
  24394.  
  24395. Ovation Hints & Tips
  24396. 5.9
  24397. The following was submitted by Hilary Ferns, for which we are very
  24398. grateful. She adds that the Ovation manual is full of hints and tips
  24399. like these (and identical to some we have already published − oops!).
  24400. 5.9
  24401. •   Selecting tools − Using <select> to choose from the toolbox will
  24402. automatically return you to the text insertion icon after you have
  24403. performed one action with that tool. Using <adjust>, however, will allow
  24404. you to remain with your chosen tool until you decide to select the next
  24405. tool again yourself. This is useful when you want to draw several lines
  24406. or frames, or link a number of successive boxes.
  24407. 5.9
  24408. •   Using picture frames − The default ‘inset’ for a picture frame is 0
  24409. mm. (For a text frame it is 1 mm.) Ovation will scale your imported
  24410. picture with the bottom and left sides aligned to the frame. I have
  24411. discovered on many occasions these sides of a picture (Draw or Sprite
  24412. format) to have been slightly cropped. This is not always obvious on
  24413. screen but is quite noticeable when printed. I now offer various answers
  24414. to this problem.
  24415. 5.9
  24416. 1. Set inset to 1mm before importing the picture.
  24417. 5.9
  24418. 2. If you want to move the picture within the frame, whatever the inset
  24419. you are ln danger of losing a fragment on any edge. You can give
  24420. yourself more space by either increasing the frame size (often not
  24421. suitable) or by decreasing the size of the picture by 1% in each
  24422. direction.
  24423. 5.9
  24424. 3. Remember too that holding down shift while moving the picture will
  24425. restrict movement to horizontal and vertical directions only, thus
  24426. enabling you to move the picture more accurately.
  24427. 5.9
  24428. I find the keyboard short-cuts for scaling a picture within a frame
  24429. particularly useful <shift-ctrl-G> to scale and <shift-ctrl-H> to fill
  24430. the frame.
  24431. 5.9
  24432. •   Text to Draw path object − The character selection application
  24433. (!CharSel) supplied with Ovation, apart from offering access to
  24434. alternative characters, also allows a single character to be changed to
  24435. Drawfile format. To do this, you select the character with <adjust>. The
  24436. resulting Drawfile icon can then be dropped into an Ovation picture
  24437. frame. Various interesting effects can be obtained by using these
  24438. characters in headings (together with a bit of imagination!).
  24439. 5.9
  24440. •   Default style-sheet − In the !Ovation application directory is a
  24441. style-sheet called ‘Default’. This is the one used each time you load
  24442. Ovation and click on the icon to open up a document. This can be
  24443. replaced with a style-sheet of your own choice, e.g. one you use
  24444. regularly, but it must be called ‘Default’. This would mean that you
  24445. will always have your own particular choice of paragraph styles defined
  24446. when Ovation is run. This is a very useful facility not to be missed.
  24447. 5.9
  24448. The next few hints and tips were sent by Aneurin Griffiths from Trefin,
  24449. Dyfed. Again we are most grateful and are glad to see a number of
  24450. readers redressing the Impression/Ovation balance by sending in some
  24451. really useful Ovation tips.
  24452. 5.9
  24453. • To draw short lines using the “line-tool” − Draw a long line, even
  24454. passing through text, and press <select>. Now shorten the line by
  24455. placing the pointer on the red box at the ‘long end’ of the line, and,
  24456. using <select>, shorten the line to the required length.
  24457. 5.9
  24458. • Printing labels using computer sheets with 2 or 3 rows of labels − If
  24459. the sheets are not A4 size, adjust the page size on the printer menu.
  24460. Carefully measure the distance from the top of the sheet to a point half
  24461. way between the first label and the second label. Use ‘View 200%’ and
  24462. mark a horizontal guide line by placing the pointer on the side ruler
  24463. and pressing <select>. (Fine adjustment is possible using <adjust>.)
  24464. Measure the distance from the mid point previously taken to one mid-way
  24465. between label 2 and 3. Carefully draw a guide line as before. Other
  24466. guide lines can now be drawn with the same spacing.
  24467. 5.9
  24468. Vertical guide lines can now be drawn in the same way. Now draw a text-
  24469. frame in the first of the rectangular spaces, allowing space for the
  24470. margins around the label. At this stage it is a good idea to save the
  24471. layout as “Blnk_xy”, where values for the label size could be coded.
  24472. 5.9
  24473. Enter the text in the text frame. Then select Object − Duplicate Frame,
  24474. and enter the appropriate number (‘requirement’ − 1!). Without changing
  24475. the instructions further, a stack of labels will be shown. These are now
  24476. easily moved to their positions on the grid using <adjust>. Obviously,
  24477. the labels on one printed sheet may be all the same or assorted. It is
  24478. sensible to make the first printout on an A4 sheet and then the A4 and
  24479. the sheet of labels may be matched from the top and left margins. Any
  24480. necessary adjustments can be easily made. Using this method the sheet
  24481. feed system is used. This works very well with a Canon BJ130e printer.
  24482. 5.9
  24483. • Using Ovation’s spelling checker − It is important to realise that the
  24484. checker must be started at the beginning of each Chapter when checking a
  24485. document composed of more than one Chapter. After Ch.1, select the first
  24486. page of Ch.2 and start the spell check again.
  24487. 5.9
  24488. This from Albert Kitchenside, Addlestone, Surrey:
  24489. 5.9
  24490. • Importing Text from PipeDream − The Ovation manual recommends
  24491. importing PipeDream text by holding down <ctrl> while dragging the
  24492. PipeDream text file into an Ovation frame. This has the effect of
  24493. converting single line terminators into spaces to allow Ovation to
  24494. reformat text within a frame. However, Albert finds that lines between
  24495. paragraphs and headings are erroneously removed using this method. He
  24496. has sent a Basic program which processes files correctly prior to import
  24497. into Ovation. They are in the directory PD/OV on the monthly program
  24498. disc.
  24499. 5.9
  24500. Impression
  24501. 5.9
  24502. Hints & Tips
  24503. 5.9
  24504. •   More than 76 graphics per chapter − If you really want to have more
  24505. than 76 graphics per Impression chapter, then use David Pilling’s ArcFS
  24506. to store your document. You will then be able to store an unlimited
  24507. number of graphic files, but you may find the access times a bit slow!
  24508. Also, RISC-OS 2 users should be aware that a bug manifests itself after
  24509. the 9358th file and filenames become confused. − Martin Sperl, Austria.
  24510. 5.9
  24511. •   More than 76 fonts available at once − Continuing the ‘trick’ above,
  24512. it is also possible to have an unlimited number of fonts available
  24513. simultaneously by copying all files from your !Fonts directory into an
  24514. ARCFS archive (plus all the extra fonts that you have always wanted to
  24515. use), and then insert the following line (for example, assuming the new
  24516. archive is called “Font”) into your !Boot file within the new archived
  24517. font directory:
  24518. 5.9
  24519. Set Font$Path ARCFS#Font:$
  24520. 5.9
  24521. You can then cause the new set of fonts to be loaded automatically by
  24522. inserting the following line within your system startup sequence (after
  24523. ArcFS has been run!):
  24524. 5.9
  24525. OpenArchive SCSIdisc4::ARCFS#Font
  24526. 5.9
  24527. (You need to substitute the name for your own hard disc in place of
  24528. SCSIdisc4.) Also, please note that to avoid a speed penalty in system
  24529. startup, you do not have to use compression when creating the font
  24530. archive and you will still save approximately 2k of disc storage per
  24531. font. − MS
  24532. 5.9
  24533. •   Viewing the screen without moving the cursor − Hold down <Shift> and
  24534. <Ctrl> and then use the arrow keys. It changes your view on the
  24535. document, left, right, up and down, without moving the cursor position.
  24536. This is useful if you don’t want to have to change the magnification to
  24537. something smaller, and thus lose the legibility of the screen font. −
  24538. David Crofts, Bury St Edmunds
  24539. 5.9
  24540. • Large capitals in normal text − If you like having a large letter to
  24541. add emphasis to the start of a paragraph but have found that the
  24542. subsequent line is spaced too far beneath, there is a solution:
  24543. 5.9
  24544. Edit the Main Heading style (or create a new style), clicking on the
  24545. 120% button, and then changing the Line Spacing box to the same as the
  24546. Font Size box e.g. 24pt as default. The problem, as you can see above,
  24547. is solved! − DC
  24548. 5.9
  24549. •   Substitute for colour in documents − Try a little variety in Black and
  24550. White. For a poster I did recently, I redefined some of the font colours
  24551. in styles to grey palettes. This gives an interesting variety to the
  24552. print density if you have a decent printer driver. − DC
  24553. 5.9
  24554. •   Bullet point − <shift−backspace> is a short-cut to enter a • bullet in
  24555. the text. − DC
  24556. 5.9
  24557. •   Deleting styles from the menu − another of those hints that everyone
  24558. else probably knew about all along...
  24559. 5.9
  24560. When you merge pieces from several old documents into one new text, this
  24561. often means that your style menu becomes unnecessarily long.
  24562. 5.9
  24563. You can delete those unwanted styles in the “edit style” window, with
  24564. one snag:
  24565. 5.9
  24566. If you click first onto a style in the style list, then on “edit style”,
  24567. any attempt to delete that style will bring up an error message.
  24568. 5.9
  24569. This is because clicking into the style list automatically selects a
  24570. style at the cursor position.
  24571. 5.9
  24572. Therefore, after you open the edit window, you must first deselect the
  24573. style before it can be deleted!  − Jochen Konietzko, Köln, Germany
  24574. 5.9
  24575. •   Installing Impression on the A5000 − While helping a relative to setup
  24576. his A5000/Impression system, we discovered that the installation program
  24577. for the DTP installs the old Font Manager (v2.44) onto the !Fonts
  24578. directory and all the old files associated with it. The ability of the
  24579. new Font Manager (v2.49) to address multiple font directories is lost
  24580. and Impression only ‘sees’ either the ROM fonts or the hard disc fonts.
  24581. I suggest that anyone installing Impression is urged to remove the
  24582. support files in the fonts directory after the installation process
  24583. (leaving the actual fonts themselves behind) and reload the files within
  24584. the fonts directory on the Apps 1 disc. Hopefully, Computer Concepts
  24585. will alter the !Install program to take account of the changes in RISC-
  24586. OS 3. − David Woods, Glasgow
  24587. 5.9
  24588. • More on Impression styles − Various readers have written with queries
  24589. on styles called ‘table’ and ‘default’ that appear on the style menu
  24590. with Impression version 2.16. These are not (in themselves) new program
  24591. features or bugs − they are just extra styles stored as part of the
  24592. !Default document stored in !Impress.Auto. The facilities provided by
  24593. the ‘table’ style are all as documented in the very first Impression-2
  24594. User Guide and are automatically set up for you if you import spread
  24595. sheet data using the LoadCSV+ loader which comes with the business
  24596. supplement. If the extra styles cause you problems or conflict with any
  24597. of your own style names, all you have to do is open a blank document,
  24598. edit the offending styles and click on the delete button to remove them
  24599. and save the document with the name !Default in one of your own
  24600. directories. Now quit Impression, open !Impress.Auto and move the
  24601. “original” !Default document elsewhere and replace it with the one you
  24602. just created. Now when you start Impression, the offending styles will
  24603. not appear. You may like also to set up your most frequently used master
  24604. pages and other styles using the same method. − Rob Sherratt,
  24605. Felixstowe.
  24606. 5.9
  24607. •   !Impression with !Compression − The message from Impression
  24608. “Incompatible document version” means you are trying to load the adfs
  24609. icon into the application rather than the compressed icon!!  − Ned
  24610. Abell, Kidderminster
  24611.  
  24612. Hints and Tips
  24613. 5.10
  24614. •   RISC-OS 3 & DOS filenames − DOS filenames (including extensions) are,
  24615. in general, longer than the maximum length of a valid ADFS filename (10
  24616. characters). It is not always possible to copy or move DOS files from
  24617. hard disc partition or floppy discs directly to the ADFS.
  24618. 5.10
  24619. The !MultiFS utility, as supplied with the PC Emulator, solves this by
  24620. allowing you to truncate the DOS filename while the translation process
  24621. takes place. Another very useful option (which I often use when copying
  24622. files from C programs) is to force !MultiFS to handle DOS extensions as
  24623. directories (hierarchical).
  24624. 5.10
  24625. However, when the filetype of a DOS partition on your ADFS hard disc is
  24626. set to ‘DOSdisc’, RISC-OS 3 will display a filer window for the
  24627. partition when you try to open the folder, while !MultiFS just ignores
  24628. it (i.e. no :C drive on the iconbar). This is all very nice but RISC-OS
  24629. 3 doesn’t offer the nice name translation options mentioned above. To
  24630. enable !MultiFS to display your DOS partitions just set their filetype
  24631. to ‘data’ before you start !MultiFS. Remember to use the command line
  24632. and not the filer menu, because the latter doesn’t allow you to change
  24633. the filetype of DOSdiscs. I inserted three lines for each DOS partition
  24634. in the !MultiFS !Run file to swap between ‘DOSdisc’ and ‘data’ type
  24635. partitions when !MultiFS is started:
  24636. 5.10
  24637. *Filer_CloseDir <PCe$Drive_X>
  24638. 5.10
  24639. *SetType <PCe$Drive_X> Data
  24640. 5.10
  24641. directly after setting the system variable <PCe$ Drive_X>, and
  24642. 5.10
  24643. *SetType <PCe$Drive_X> DOSDisc
  24644. 5.10
  24645. at the end of the !Run file (although the comment tells us not to do
  24646. so).
  24647. 5.10
  24648. Unfortunately, there are some bugs in !MultiFS: When you copy to a
  24649. MultiFS filer window, you must ensure name translation is not set to
  24650. hierarchical, otherwise you will end up with wildcards (‘?’) in
  24651. filenames. When this happens, you must use DOS itself to delete the file
  24652. because RISC-OS fails to wipe those objects. Another bug appears if you
  24653. shut down your system after using !MultiFS. This results in an error
  24654. report and a task manager crash.  Paul Groot, Holland.
  24655. 5.10
  24656. •   Sprite does not exist error − In answer to last month’s query in the
  24657. Help! section, the ‘Sprite does not exist’ error only occurs with the
  24658. old version of the printer drivers. It can be solved by simply using a
  24659. later version of the printer driver e.g. v2.44 or later (as per
  24660. Shareware Disc 17).
  24661. 5.10
  24662. Progammers take note: The error is cause by programs that print sprites
  24663. using their names and not their pointers.
  24664. 5.10
  24665. Many thanks to all those who called − too numerous to mention!
  24666. 5.10
  24667. •   High resolution PostScript? When printing sprites to !PrinterPS, the
  24668. resulting output may be lower quality than, for example, a 600 dpi
  24669. LaserDirect (using !ShowPage), even when printing at 300 dpi. A solution
  24670. is to change the configuration file of !PrinterPS to make it think the
  24671. resolution is higher e.g. change the ‘pxres’ and ‘pyres’ parameters to
  24672. 600.  J Thorn, Cardiff.
  24673. 5.10
  24674. •   Problem with Font$Path − I recently experienced a problem with
  24675. Impression 2.16 that took a long time to solve. The problem manifests
  24676. itself by Impression, on starting, reporting an error ‘Not Found’. If
  24677. you select OK to continue, the following error is reported ‘Illegal
  24678. window handle’ and at this point you have to quit, because continuing
  24679. results in the second error message. After about two hours of trying to
  24680. find the problem − as the error messages are not particularly helpful −
  24681. I discovered that the problem lay with Font$Path.
  24682. 5.10
  24683. I have two !Fonts directory, one with a small number of outline fonts
  24684. and one with a large number. Also, my second font directory pulls in the
  24685. fonts in my first directory by use of the Font$Path variable. I had
  24686. moved the locations of these directories from an Apps folder to the root
  24687. folder of my hard disc and this was causing the problems. The ‘Not
  24688. Found’ error is caused by Impression not finding the first directory in
  24689. the Font$Path and the second error is caused by the fact that a Font
  24690. Menu can’t be created, as the specified directory does not exist.
  24691. Indeed, most applications that support outline fonts will also give
  24692. similar error messages.
  24693. 5.10
  24694. I have written a small program (on this month’s program disc) that will
  24695. test the validity of Font$Path and a call to this program should be
  24696. placed as the last line in any !Fonts.!Run file. A copy of FontTest will
  24697. need to be copied into all !Fonts directories i.e.
  24698. 5.10
  24699. | !Run file for !Fonts (version 0.11, 10-May-89)
  24700. 5.10
  24701. |
  24702. 5.10
  24703. Iconsprites <Obey$Dir>.!Sprites
  24704. 5.10
  24705. |
  24706. 5.10
  24707. | Kill newer versions of Font Manager
  24708. 5.10
  24709. |
  24710. 5.10
  24711. RMKill FontManager
  24712. 5.10
  24713. RMKill SuperSample
  24714. 5.10
  24715. |
  24716. 5.10
  24717. RMEnsure FontManager 2.42 RMLoad <Obey$Dir>.Fonts
  24718. 5.10
  24719. RMEnsure SuperSample 0.04 RMLoad <Obey$Dir>.Super
  24720. 5.10
  24721. |
  24722. 5.10
  24723. SetMacro Font$Path adfs::
  24724. 5.10
  24725. HardDisc.$.!Fonts., <Font$Prefix>.
  24726. 5.10
  24727. Set Font$Prefix <Obey$Dir>
  24728. 5.10
  24729. |
  24730. 5.10
  24731. <Obey$Dir>.FontTest
  24732. 5.10
  24733. The program firstly checks that Font$Path exists and then reads the
  24734. environment variable and checks its size. The length of this variable
  24735. has to be greater than zero for it to point to a valid !Fonts directory.
  24736. 5.10
  24737. It then checks that every reference in Font$Path points to a valid
  24738. directory. This is done by an OS_File call (line 680) which will return
  24739. 2 if the filename given is a directory. If the file reference does not
  24740. exist, an error will be generated and the Fonts directory !Run file
  24741. needs to be modified.
  24742. 5.10
  24743. I have included an example of the problem on the program disc in the
  24744. ‘Example’ directory. If you click on !Fonts2 an error will be generated
  24745. as the Font$Path contains a reference to a file !Fonts3 (not a direc
  24746. tory). Andrew Ferguson, London.
  24747. 5.10
  24748. •   ArcFS and sticky backdrops − I have a backdrop application on my
  24749. machine with all the sprites for the various applications held in an
  24750. archive in order to save disc space. In order that the sprites can be
  24751. seen, in theory they should be de-archived first. Thanks to my son,
  24752. Neil, I have the following set of ArcFS commands in the !Run file of my
  24753. !Boot application on the hard disc.
  24754. 5.10
  24755. RMEnsure ArcFS 0 RMLoad System: Modules.ArcFSMod
  24756. 5.10
  24757. RMEnsure ArcFS 0 Error I cannot find the module
  24758. 5.10
  24759. OpenArchive <Boot$Dir>.SpriteLib Sprites
  24760. 5.10
  24761. IconSprites ArcFS#Sprites:$. !Sprites
  24762. 5.10
  24763. CloseArchive Sprites
  24764. 5.10
  24765. C Walker, Wymondham.
  24766. 5.10
  24767. •   Elite Commanders − On this month’s program disc, there is a program
  24768. which allows you to edit Elite commander files. There are also three
  24769. commander files with missions to accomplish. S Edwards, Stourbridge  A
  24770. 5.10
  24771. 5.10
  24772.  
  24773. Vector Hints − not in the manual!
  24774. 5.10
  24775. If the paths rotate the wrong way, you get...
  24776. 5.10
  24777. 5.10
  24778. If the paths rotate the “right” way, you get...
  24779. 5.10
  24780. 5.10
  24781. If the paths originate at the same point, you get...
  24782. 5.10
  24783. 5.10
  24784. Remember, always have the same number of points in the paths. The
  24785. interpolation in the first example was without reversing or flipping
  24786. either of the paths.
  24787. 5.10
  24788. 5.10
  24789. The paper margins are shown on the main window and the printer setup
  24790. menu is used to deselect those pages you don’t need.
  24791. 5.10
  24792. The Eppler profile was “plotted” on an A0 page. The paper margins shown
  24793. are A4 size.
  24794. 5.10
  24795.  
  24796. 5.10
  24797. 5.10
  24798.  
  24799.  
  24800.  
  24801. Impression Hints & Tips
  24802. 5.10
  24803. •   Mailmerge in Impression: So it seems that there are no tips like old
  24804. tips (Archive 3.9 p20). I claim that Charles Moir learned the trick he
  24805. uses from me! Just one point to add, though. You have a choice between
  24806. linking frames on a master page and not linking. If you link, the text
  24807. flows through the frames on a page and then on to the first frame of the
  24808. next page. This is probably convenient for small mailing lists without
  24809. use of a database. If you do not link frames, text flows from page to
  24810. page within the homologous frame. I recently helped to run a biggish
  24811. scientific meeting which involved mail shots to about a thousand
  24812. potential delegates and a full feedback of booking information to about
  24813. 450. The database resided on a Mac, the most widely-used computer in the
  24814. lab, and an output file was generated in <Tab> separated format, ported
  24815. to a DOS disk, then to PipeDream. Individual columns (fields) or groups
  24816. of columns were then extracted, linefeeds replaced by
  24817. 5.10
  24818. s, and the fields dropped into the right frames of the first page.
  24819. Perfect registration was retained: the last person’s details did belong
  24820. to him! All I had to do was to edit some of the less wise entries in the
  24821. “comments” field of the database, which might have been taken as casting
  24822. aspersions on the intelligence, rationality and financial or moral
  24823. rectitude of some the participants! This method obviates the need to
  24824. generate a report format for your database. You just extract the data
  24825. you want for each of your frames and drop it in. Some fields get used
  24826. twice, such as parts of names, once for the address (lined up with an
  24827. envelope window), and once for the Dear... line.
  24828. 5.10
  24829. We also produced sheets of individualised meal tickets. The purpose here
  24830. was to ensure that none of the three eating places got all the dele
  24831. gates. We operated a “swap-shop” but needed to know who was swopping
  24832. with whom. Named tickets solved this. In this case, I extracted the
  24833. names once and dropped then into the first (unlinked) frame. To make a
  24834. copy in the next frame (×450), <Ctrl-T> to mark all the text in the
  24835. frame, 450 pages deep, <Ctrl-C> to copy it and then <Ctrl-V> to paste it
  24836. into each frame. The printer who perforated the sheets was quite
  24837. impressed by the product: he had never seen the like. He certainly had
  24838. no idea how easy it was (save for feeding 450 sheets of card into the
  24839. laser printer).  Mike Hobart, Cambridge.
  24840. 5.10
  24841. Image setting − Another firm which does image setting is Stylus
  24842. Publications Bureau of 98 Wilberforce Road, Finsbury Park, London N4
  24843. 2SR. They also do colour slides and CibaChrom prints and overheads from
  24844. Draw and Impression. However, they covered so much of their literature
  24845. with gold leaf that I wonder if they are still trading!  Mike Hobart,
  24846. Cambridge.
  24847. 5.10
  24848.  
  24849. Hints and Tips
  24850. 5.11
  24851. •   A5000 hard disc replacement − One drawback with the A5000 is that the
  24852. 40M hard disc quickly fills up. Being in this position, I decided to
  24853. replace mine with a larger one.
  24854. 5.11
  24855. Researching prices, I found that IDE drives bought direct from suppliers
  24856. advertising in magazines such as Personal Computer World are much
  24857. cheaper than the same drives advertised in the specialist Acorn
  24858. magazines. Would any IDE drive work? A friend told me that Seagate IDE
  24859. drives did not work correctly on A5000s but Connor (as already fitted to
  24860. my A5000) and Maxtor (as fitted to another A5000 I know of) should be
  24861. OK, as well as Quantum. Another friend recently bought and fitted an NEC
  24862. drive to his A5000.
  24863. 5.11
  24864. I bought a 120M cached Quantum drive (the GM120AT). The drive, from SMC
  24865. who advertise in PCW, arrived the day after I ordered it.
  24866. 5.11
  24867. The fitting was extremely simple. After a backup and power off I removed
  24868. the cables, undid the four screws under the old drive (it is necessary
  24869. to remove all the drive cables and lift out the metal bracket to which
  24870. the drives are fastened) to release it and slotted in the new one − no
  24871. problems! The drive was already low-level formatted and, although the
  24872. hard disc formatter supplied with RISC-OS 3 didn’t recognise the disc
  24873. shape, I just selected ‘Initialise’ and that was it. The drive worked a
  24874. few seconds after switching on.
  24875. 5.11
  24876. In use, the drive feels very fast. I have measured a data transfer rate
  24877. of 1060k/sec, compared to 800k/sec for the original drive and an average
  24878. access time of 7ms(!) as compared to 18ms.
  24879. 5.11
  24880. Similar drives advertised specifically for the A5000 in the Acorn press
  24881. are £50­£100 more. Some of these include splitter cables, allowing the
  24882. old drive to remain (there are already mounting holes for a second drive
  24883. on the A5000, drilled in the case below the floppy disc drive). I intend
  24884. to make my own in the next few days − it will cost about £10.
  24885. 5.11
  24886. So I would recommend anyone wishing to upgrade their A5000’s internal
  24887. disc drive to do it themselves. Just obey the following rules:
  24888. 5.11
  24889. −  Shop around for the best deal in the general computer and PC press.
  24890. 5.11
  24891. −  Buy a low profile 3½“ AT IDE drive made by Quantum, Conner, Maxtor or
  24892. NEC.
  24893. 5.11
  24894. −  Make a backup of your old hard disc before commencing the changeover.
  24895. 5.11
  24896. −  Use the RISC-OS 3 hard disc formatter to initialise the new disc, no
  24897. need to format.
  24898. 5.11
  24899. −  If you want to use both drives, Maplin Electronics sell everything
  24900. you need to make the splitter cables.
  24901. 5.11
  24902. Perhaps a list of known A5000-friendly IDE drives could be compiled? 
  24903. Seán Kelly, Leighton Buzzard
  24904. 5.11
  24905. •   Acorn SCSI card − If you buy the CDFS/FSCSI upgrade for the Acorn SCSI
  24906. card, there is a link change to be made on the AKA31 version of the card
  24907. but if you have one of the older AKA30 cards, it is slightly more
  24908. complicated.
  24909. 5.11
  24910. The upgrade consists of putting a 27512 EPROM in place of the existing
  24911. 27256 EPROM. To enable the extra address lines, hardware modifications
  24912. are needed. Links 1, 3, 4 and 5 remain unchanged but link LK2 was open
  24913. and has to be closed and link LK12 was closed and has to be opened. On
  24914. the AKA31 boards, these changes can be made by moving a link but on the
  24915. AKA31, this will involve cutting a track on LK12 and soldering a link on
  24916. LK2. This should not be attempted unless you are competent to make such
  24917. a modification and it will, in any case, invalidate the warranty on the
  24918. board. Acorn dealers should do the modification for you although there
  24919. may be a charge unless you buy the upgrade from them. Tudor Jones,
  24920. Barnet.
  24921. 5.11
  24922. •   Automatic kerning and RISC-OS 3 − The font manager has this facility.
  24923. Currently it is only available with the standard ROM fonts (Trinity,
  24924. etc.). Presumably, EFF will update their fonts to include kerning pairs.
  24925. To use auto-kerning, simply set bit 9 of R2 in all calls to SYS
  24926. “Font_Paint”.
  24927. 5.11
  24928. 10 REM >KernDemo
  24929. 5.11
  24930. 20 REM Example of automatic kerning
  24931. 5.11
  24932. 30 REM For RISC-OS 3 ROM fonts only
  24933. 5.11
  24934. 40 MODE 15:OFF
  24935. 5.11
  24936. 50 SYS “ColourTrans_SetFontColours”,0,0,
  24937. 5.11
  24938. &F0F00000,14
  24939. 5.11
  24940. 60 SYS “Font_FindFont”,,“Trinity. Medium”,50*16,50*16 TO hdl%
  24941. 5.11
  24942. 70 SYS “Font_SetFont”,hdl%
  24943. 5.11
  24944. 80 REM Kerning off first
  24945. 5.11
  24946. 90 SYS “Font_Paint”,,“WAWA no
  24947. 5.11
  24948. kerning here!“,%0000010000,10,500
  24949. 5.11
  24950. 100 REM Kerning on now
  24951. 5.11
  24952. 110 REM Set bit 9 in R2
  24953. 5.11
  24954. 120 SYS “Font_Paint”,,“WAWA this is kerned.”,%1000010000,10,300
  24955. 5.11
  24956. 130 SYS“Font_LoseFont”,hdl%
  24957. 5.11
  24958. The ease with which this can be done leads me to wonder why CC haven’t
  24959. provided it as an option in Impression.
  24960. 5.11
  24961. To rotate fonts, set bit seven of R2 in “Font_ Paint” and pass the (draw
  24962. style) transformation matrix in R7. Note that old style calls to
  24963. “Font_StringWidth”, etc don’t take account of kerning or transformation.
  24964. A new SWI “Font_ ScanString” is used to do this. Rob Davison, New
  24965. Zealand
  24966. 5.11
  24967. •   Basic 1.05 Bug − A really annoying bug exists in all versions of Basic
  24968. except the floating point version supplied on the RISC-OS 3 application
  24969. discs.
  24970. 5.11
  24971. Consider the following two statements (type them in if you feel like
  24972. it.)
  24973. 5.11
  24974. a=210
  24975. 5.11
  24976. b=2.10*100
  24977. 5.11
  24978. These two variables should hold the same value. They seem to be the
  24979. same, as you can check with:
  24980. 5.11
  24981. PRINT a,b
  24982. 5.11
  24983. IF a=b PRINT “SAME”
  24984. 5.11
  24985. etc.
  24986. 5.11
  24987. If you have RISC-OS 2 then both the above checks will say that they are
  24988. the same. RISC-OS 3 Basic 1.05 will not print ‘SAME’ in the second test.
  24989. The reason for this can be revealed by trying the following:
  24990. 5.11
  24991. PRINT INT(a),INT(b)
  24992. 5.11
  24993. PRINT STR$(a),STR$(b)
  24994. 5.11
  24995. These problems seem to occur because of the limited accuracy of floating
  24996. point numbers in Basic. My program stored times at centisecond resolu
  24997. tion internally and I wanted to scale these times to seconds for the
  24998. user. I did a usertime=centitime/100 but ran into problems when I tried
  24999. converting the usertime variable back into a string with STR$(usertime)
  25000. 5.11
  25001. My solution (and I’m not saying it’s a good one) is as follows:
  25002. 5.11
  25003. A short ARM code routine intercepts the WRCHV vector and stores
  25004. characters printed in a buffer. The routine is linked in just before a
  25005. PRINT realvar statement and killed off just afterwards. You can then
  25006. extract the string from the buffer via normal means. An example program
  25007. follows:
  25008. 5.11
  25009. 10 REM >string
  25010. 5.11
  25011. 20 REM provides a STR$( function
  25012. 5.11
  25013. 25 REM that avoids some floating
  25014. 5.11
  25015. 30 REM point problems in Basic
  25016. 5.11
  25017. 40 REM By Rob Davison, May 1992
  25018. 5.11
  25019. 50 REM Public Domain
  25020. 5.11
  25021. 60 REM
  25022. 5.11
  25023. 70 PROCassy
  25024. 5.11
  25025. 80 PRINT “First the old way -”
  25026. 5.11
  25027. 90 PRINT STR$(2.10*100)
  25028. 5.11
  25029. 100 PRINT “Should be ”;FNstr(2.10 *100)
  25030. 5.11
  25031. 110 PRINT’“Another example”
  25032. 5.11
  25033. 120 PRINT STR$(0.6)
  25034. 5.11
  25035. 130 PRINT “Should be ”;FNstr(0.6)
  25036. 5.11
  25037. 140 PRINT’“Bye now.”
  25038. 5.11
  25039. 150 END
  25040. 5.11
  25041. 160 DEFPROCassy
  25042. 5.11
  25043. 170 DIM code% &100
  25044. 5.11
  25045. 180 REM ’possy’ is a buffer. Can be scratch space but MUST
  25046. 5.11
  25047.  be big enough.
  25048. 5.11
  25049. 190 DIM possy &100
  25050. 5.11
  25051. 200 FOR opt=0 TO 2 STEP2
  25052. 5.11
  25053. 210 P%=code%
  25054. 5.11
  25055. 220 [OPT opt
  25056. 5.11
  25057. 230 .intercept
  25058. 5.11
  25059. 240 STMFD R13!,{r0-r3 }
  25060. 5.11
  25061. 250 LDR R1,posaddr
  25062. 5.11
  25063. 260 STRB R0,[R1]
  25064. 5.11
  25065. 270 ADD R1,R1,#1
  25066. 5.11
  25067. 280 STR R1,posaddr
  25068. 5.11
  25069. 290 LDMFD R13!,{r0-r3 ,PC}
  25070. 5.11
  25071. 300 .posaddr EQUD possy
  25072. 5.11
  25073. 310 ]
  25074. 5.11
  25075. 320 NEXT
  25076. 5.11
  25077. 330 ENDPROC
  25078. 5.11
  25079. 340 REM this is the string function
  25080. 5.11
  25081. 350 DEFFNstr(number)
  25082. 5.11
  25083. 360 LOCAL ERROR
  25084. 5.11
  25085. 370 ON ERROR LOCAL SYS “XOS_Release” ,3,intercept,0:REPORT:PRINT ERL:END
  25086. 5.11
  25087. 380 !posaddr=possy:REM reset pointer to start of buffer
  25088. 5.11
  25089. 390 SYS “XOS_Claim”,3,intercept,0 :REM claim the vector
  25090. 5.11
  25091. 400  PRINT number
  25092. 5.11
  25093. 410 SYS “XOS_Release”,3,intercept,0 :REM and release it immediately
  25094. 5.11
  25095. 420 REM Extract the string and get rid of leading/trailing rubbish
  25096. 5.11
  25097. 430 str$=$possy:WHILE LEFT$(str$,1)= CHR$32:str$=RIGHT$(str$,
  25098. 5.11
  25099. LEN(str$)-1):ENDWHILE
  25100. 5.11
  25101. 440 WHILE ASC(RIGHT$(str$,1))<32: str$=LEFT$(str$,LEN(str$)-1)
  25102. 5.11
  25103. :ENDWHILE
  25104. 5.11
  25105. 450 =str$
  25106. 5.11
  25107. Rob Davison, New Zealand
  25108. 5.11
  25109. •   Basic V rounding errors − Last month, (Archive 5.10 p19) Mr E. Hollox
  25110. asked for help with the STR$ rounding. I hope that the following will
  25111. help solve his problem. No actual specifics were given on his problem,
  25112. so I’ve assumed that he’s working with monetary units (i.e. two decimal
  25113. places). This may not be correct in this instance, but will probably be
  25114. relevant to a large number of users and should provide Mr Hollox with a
  25115. starting point for the solution he wants.
  25116. 5.11
  25117. In simple terms, the solution is to avoid decimals; to work only with
  25118. integer variables. At first glance this may sound like an odd solution
  25119. when a number of decimal places are required, but it’s not as strange as
  25120. you may think.
  25121. 5.11
  25122. Firstly, the use of integer variables does not restrict you to the use
  25123. of integer numbers − not when you are making use of STR$, anyway.
  25124. 5.11
  25125. Secondly, integers make for faster programs, as I’m sure everyone
  25126. realises (unless they program an Atari ST in GFA or Atari Basic!)
  25127. 5.11
  25128. Thirdly, and more importantly, integers are far more accurate than real
  25129. numbers due to the way in which they are stored. The method of storage
  25130. does have a negative effect, however, in that your range of numbers is
  25131. restricted − though the range available should be enough for most
  25132. people’s needs. Page 21 of the Archimedes’ BBC Basic Guide details this.
  25133. Remember that the more decimal places you require, the lower the range
  25134. becomes.
  25135. 5.11
  25136. So, onto the solution to the problem...
  25137. 5.11
  25138. Your ‘real’ number must be stored as an integer 100 (for 2 dp users)
  25139. times as big. Whenever any output is required, a routine must be used to
  25140. convert it to a string and insert a decimal point at the correct place.
  25141. For inputting, the reverse is required; the decimal point must be
  25142. removed.
  25143. 5.11
  25144. The function FN_Int_To_Str carries out the decimalisation of your
  25145. integer number:
  25146. 5.11
  25147. DEF FN_Int_To_Str(Int%)
  25148. 5.11
  25149. LOCAL Real$
  25150. 5.11
  25151. Int%=ABS(Int%)
  25152. 5.11
  25153. IF Int%<10 THEN Real$=
  25154. 5.11
  25155. “      00”+STR$(Int%)
  25156. 5.11
  25157. IF Int%>=10 AND Int%<100 THEN Real$=“      0”+STR$(Int%)
  25158. 5.11
  25159. IF Int%>=100 THEN Real$=RIGHT$
  25160. 5.11
  25161. (“        ”+STR$(Int%),9)
  25162. 5.11
  25163. Real$=LEFT$(Real$,7)+“.”+
  25164. 5.11
  25165. RIGHT$(Real$,2)
  25166. 5.11
  25167. =Real$
  25168. 5.11
  25169. You must call the function with string$=FN_Int_ To_Str(number%) where
  25170. string$ is your variable to hold the decimalised string and number% is
  25171. your variable holding the stored number. The routine returns the number
  25172. as a string with two decimal places, and right justified (in a ten
  25173. character field).
  25174. 5.11
  25175. The minus symbol ruins the simplicity of the routine, so an absolute
  25176. value is taken of the number. Minus numbers aren’t difficult to cope
  25177. with but, as they weren’t part of the problem....
  25178. 5.11
  25179. The function works by converting the integer number to a string and then
  25180. adding spaces to the left in order to right align it. This is done by
  25181. the three IF statements and, possibly, is the more complex part of the
  25182. routine.
  25183. 5.11
  25184. In the first case, the number is lower than ten (i.e. 0 to 9) so the
  25185. final figure will be of the form “      0.0x” − hence six spaces and two
  25186. zeros are added.
  25187. 5.11
  25188. In the second case, the number is in the range 10 to 99, so the figure
  25189. will be “      0.xx” − six spaces and one zero are added.
  25190. 5.11
  25191. In the third case, the number is over 100 (over 1.00). In this case,
  25192. rather than add the correct number of spaces for its size (6 for 100 to
  25193. 999, 5 for 1000 to 9999, etc.) we add the maximum required and truncate
  25194. the resulting string to its rightmost nine characters.
  25195. 5.11
  25196. The result, in all three cases, is a right aligned integer number in a
  25197. nine character string.
  25198. 5.11
  25199. Then we have the easy bit. The first seven characters of the string are
  25200. taken, a decimal point added, then the last two digits − problem solved.
  25201. 5.11
  25202. The reverse function is even simpler:
  25203. 5.11
  25204. DEF FN_Str_To_Int(Real$)
  25205. 5.11
  25206. LOCAL Int%
  25207. 5.11
  25208. Real$=FN_FormatNumber(Real$)
  25209. 5.11
  25210. Int%=VAL(LEFT$(Real$,7))*100+
  25211. 5.11
  25212. VAL(RIGHT$(Real$,2))
  25213. 5.11
  25214. =Int%
  25215. 5.11
  25216. This function is called with number%=FN_Str_ To_Int(string$) where
  25217. string$ is your variable containing the string and number% is the
  25218. variable that will contain the integer number.
  25219. 5.11
  25220. The first thing the function does is to pass the string to another
  25221. function in order to ensure it is of the correct format before convert
  25222. ing it to a number. This is dealt with below.
  25223. 5.11
  25224. The function then calculates the integer part of the number (positions 1
  25225. to 7 within the string), multiplies this by 100, and adds the fractional
  25226. part of the number (positions 9 to 10 − after the decimal point.) The
  25227. result, an integer number 100 times the real number, is returned to the
  25228. calling routine.
  25229. 5.11
  25230. I could have simply used Int%=VAL(Real$)*100, making the routine much
  25231. simpler. Then the inaccuracy of real numbers is risked once more. In
  25232. between Real$ and Int%, the number is stored as real until it is
  25233. multiplied by 100 and put in the integer variable. The method I’ve used
  25234. circumvents this risk, but introduces another factor. The format of the
  25235. number within the string must be correct. For the above conversion to
  25236. work, this must be a two decimal place number, with the decimal point as
  25237. the eighth character of the string. This is where the third formula
  25238. comes in:-
  25239. 5.11
  25240. DEF FN_FormatNumber(Number$)
  25241. 5.11
  25242. LOCAL Length%,Point%
  25243. 5.11
  25244. Length%=LEN(Number$)
  25245. 5.11
  25246. Point%=INSTR(Number$,“.”)
  25247. 5.11
  25248. IF (Point%=Length%-1) AND
  25249. 5.11
  25250. (Point%>0) THEN Number$=Number$+“0”
  25251. 5.11
  25252. IF (Point%=Length%) AND (Point%>0) THEN Number$=Number$+“00”
  25253. 5.11
  25254. IF Length%=0 THEN Number$=“0”
  25255. 5.11
  25256. IF Point%=0 THEN Number$=Number$+ “.00”
  25257. 5.11
  25258. IF Point%=1 THEN Number$=“0”+ Number$
  25259. 5.11
  25260. Number$=RIGHT$(“       ”+Number$ ,10)
  25261. 5.11
  25262. =Number$
  25263. 5.11
  25264. This routine looks far more complicated than it actually is. The second
  25265. routine, above, passes its Real$ to this function which formats it to
  25266. two decimal places and ensures that the final string is 10 characters
  25267. long.
  25268. 5.11
  25269. In this sense, it is a routine that can be used independently of the
  25270. other two; by calling it with New$=FN_FormatNumber(Old$) where Old$ is
  25271. the unformatted number and New$ is the result.
  25272. 5.11
  25273. It works by determining first the length of the string, then the
  25274. position of the decimal point within the string. With a two decimal
  25275. place number, the position of the point would be 2 less than the length
  25276. of the string.
  25277. 5.11
  25278. The first IF statement adds a single zero if the position of the point
  25279. is 1 less than the string’s length but only if the decimal point’s
  25280. position is larger than zero − in which case the number is an integer
  25281. and would have been accidentally multiplied by ten.
  25282. 5.11
  25283. The second IF adds a double zero if the point is at the end of the
  25284. string. This is not done if the position of the point is zero, in which
  25285. case the string is null and represents nothing.
  25286. 5.11
  25287. The third makes the string equal to “0” if it is found to be null.
  25288. 5.11
  25289. The fourth adds “.00” to the end of the string if there is no decimal
  25290. point − i.e. if the number is an integer.
  25291. 5.11
  25292. The combination of the third and fourth IF’s result in the null string
  25293. (“”) becoming “0.00”
  25294. 5.11
  25295. The fifth IF adds a zero to the string if the decimal point is at the
  25296. very beginning − if the number is lower than one and is lacking the
  25297. leading zero.
  25298. 5.11
  25299. Finally, before returning the result, a number of spaces are added to
  25300. the left of the number which is then truncated to the rightmost ten
  25301. characters. Hey presto, a nicely formatted number.
  25302. 5.11
  25303. The three routines are on the enclosed disk, in the form of a procedure
  25304. library − details of how to use such are on page 92 of the BBC Basic
  25305. Guide.
  25306. 5.11
  25307. Though the routines, as given, are for numbers with two decimal places −
  25308. and with a field width of ten − it shouldn’t be too difficult to alter
  25309. them for other requirements. Unfortunately, the higher the number of
  25310. decimal places, the more (and more complicated) IF’s are required. It
  25311. shouldn’t be too difficult to write routines that accept the number for
  25312. conversion, together with the number of decimal places and the field
  25313. width but, as I said before, this was just intended to provide Mr Hollox
  25314. with a starting point for his solution. Vince Hudd, Soft Rock Software.
  25315. 5.11
  25316. •   Bible Master with RISC-OS 3 − Having found a list of verses or cross
  25317. references, it is possible to import the text into an Archimedes word
  25318. processing (or DTP) package.
  25319. 5.11
  25320. (i) Load the PC text into !Edit and then
  25321. 5.11
  25322. (ii) Use the wildcard search and replace option searching for %[ $x76-
  25323. xFF] (note that the square brackets start with a space) and replacing
  25324. with a space.
  25325. 5.11
  25326. This will remove all the screen control characters and multiple spaces. 
  25327. The resulting text can then be saved and/or loaded into most word
  25328. processors.  S Wright, Basingstoke
  25329. 5.11
  25330. •   Deskjet 500C and RISC-OS 3 − Recent contributors on the subject of the
  25331. HP Deskjet 500C have tended to concentrate on the best type of paper to
  25332. use. I will not attempt to further that debate, but rather recount my
  25333. efforts to produce envelopes to match the quality of their contents.
  25334. This turned out to be less straightforward than I had expected but I
  25335. eventually succeeded. Most of my printing is from Impression Junior, so
  25336. the following will apply to Impression II users and, although I am using
  25337. an A5000,  the RISC-OS 2  drivers are not crucially different.
  25338. 5.11
  25339. Using the Alter Pages sub-menu in Junior, create a custom page the same
  25340. size as the envelope. A standard A4 envelope seems to be 218mm by 110mm.
  25341. Create a suitable frame for the name and address and save the file as
  25342. ‘envelope’. Load the !Printers application and create a custom page of
  25343. the same size, also called ‘envelope’. I have used margins of 10mm all
  25344. round which show up unambiguously in the Junior window. Click on <Save
  25345. Settings> in the page set-up menu and <Save Choices> from the main menu.
  25346. Go to the ‘configure’ option from the printer control menu, select the
  25347. new ‘envelope’ option and click on OK. The printer margins will now be
  25348. visible in the Junior window. Insert an envelope face down in the out-
  25349. tray of the printer, sliding it into the guide slots provided and
  25350. keeping the right hand edge against the edge of the tray. At this point,
  25351. the HP manual is misleading. Do NOT press the envelope button on the
  25352. printer. Simply press <Print> on the computer and then <Return>. The
  25353. envelope will now be properly printed. If the envelope button on the
  25354. printer has been pressed, the envelope will be passed disdainfully
  25355. through the printer and the address will appear on the next sheet of
  25356. paper from the in-tray.
  25357. 5.11
  25358. In the prison where I work, I have recently been involved in running an
  25359. Anger Control Programme which required a couple of dozen overhead
  25360. projector transparencies. These can be produced to a high standard on
  25361. the 500C and, of course, in full colour. The transparencies used must be
  25362. designed for use with inkjet printers since they require a special
  25363. material to absorb the ink. There is, however, one major problem − the
  25364. appropriate material is rather expensive. Hewlett Packard’s own
  25365. transparencies cost about £75 inc. VAT for a box of 100. For me, this is
  25366. too many and far too much money. Eventually, I found that NOBO produce a
  25367. box of 50 for a slightly lower price per transparency and these should
  25368. be available from a good office supplies firm. The inadequate black
  25369. produced by the colour cartridge on the 500C is particularly noticeable
  25370. on an OHP and I found that a more satisfactory result could be obtained
  25371. by printing each transparency twice; once for black and once for the
  25372. coloured areas. Registration seems not to be a problem for the bold text
  25373. and graphics which are the norm for this kind of presentation. This
  25374. technique also saved an awful lot of expensive, coloured ink.
  25375. 5.11
  25376. Incidentally, the UNDO facility on RISC-OS3 !Draw(or in !DrawPlus) was a
  25377. considerable help in creating the colour ‘separations’ for this process.
  25378. I could delete either the black or the coloured areas of the image
  25379. before printing and restore them by pressing <F8>.  A Trout, Lancs.
  25380. 5.11
  25381. •   Deskjet 500 DIP switches − For those just buying Deskjet 500 printers,
  25382. it may be worth knowing that the default setting of the DIP switches is
  25383. not too helpful. Try the following settings instead...
  25384. 5.11
  25385.            Bank A                         Bank B
  25386. 5.11
  25387. 1 2 3 4 5 6 7 8   1 2 3 4 5 6 7
  25388. 5.11
  25389. ¯  ¯  ­  ­  ¯  ­  ¯  ­        ¯  ­  ¯  ¯  ¯  ¯  ¯
  25390. 5.11
  25391. This seems to work OK − it sets things like skip-over-perforation OFF
  25392. and A4 paper instead of some US size.  Steve Hutchinson, Gloucester.
  25393. 5.11
  25394. •   Dragging solid sprites − RISC-OS 3 has, built in, the ability to solid
  25395. drag sprites from save dialog boxes. The solid drag option is stored in
  25396. CMOS in a ‘hidden’ location on bit 1 of byte 28. The following commands
  25397. will set bit 1 without disturbing anything else in this byte.
  25398. 5.11
  25399. *Basic
  25400. 5.11
  25401. SYS “OS_Byte”,161,28 TO ,,v%
  25402. 5.11
  25403. v%=v% OR %10
  25404. 5.11
  25405. SYS “OS_Byte”,162,28,v%
  25406. 5.11
  25407. Now try saving a file from Draw/Edit/Paint, etc.
  25408. 5.11
  25409. (Comparing the A5000 to an A440/1+30Mhz ARM3, the 440 runs at about the
  25410. same speed as the A5000 in mode 12, but at about 1/3 of the speed in
  25411. mode 28.)  Rob Davison, New Zealand
  25412. 5.11
  25413. •   Personalised application templates − Many users may not have realised
  25414. that it is often possible to alter the windows and templates used by an
  25415. application. Most programmers use the FormEd application or one of its
  25416. derivatives to create a Template file which contains the window
  25417. definitions used by the program and this can often be seen in the
  25418. application directory normally called, not surprisingly, Templates.
  25419. 5.11
  25420. If you have a copy of FormEd, which is supplied with all Acorn’s
  25421. compilers but is also available from most PD libraries (Shareware Disc
  25422. 20, Ed), you can load these templates and alter them to suit your own
  25423. ideas and preferences. What you must not do is change the number of any
  25424. of the icons or the program won’t behave properly. You must also be
  25425. careful if you create any extra icons that they don’t overlay any
  25426. existing button icons since the Wimp doesn’t report clicks on icons
  25427. which are hidden behind others with a higher number.
  25428. 5.11
  25429. As an illustration, I have included a set of modified windows for Edit.
  25430. Since some of these now use sprites there is also a sprite file and you
  25431. must insert a line to load these in the !Run file or the windows will
  25432. look rather bare. For simplicity, I have included a !Run file with the
  25433. extra line in it.
  25434. 5.11
  25435. Rename your existing !Run and Templates files something else (in case
  25436. you don’t like mine) and copy the files !Run, Templates and sprites2
  25437. into the !Edit application directory. Now when you run Edit the new
  25438. windows will be used.
  25439. 5.11
  25440. Note that the main text window is also changed. When Edit opens a new
  25441. file the main text window opens in whatever form the template was
  25442. created. Just load the Templates file into FormEd and drag the text
  25443. window around the screen and resize it until you are satisfied. Then
  25444. save the templates. Next time you open an Edit window, that is the size
  25445. and position it will assume.
  25446. 5.11
  25447. I don’t claim that these examples are particularly brilliant but they
  25448. are certainly an improvement on the original and will help to show how
  25449. you can customise standard programs. David Holden, Sydenham.
  25450. 5.11
  25451. •   Pinboard problems − Several people (well, at least two anyway!) appear
  25452. to have had problems with Pinboard running under RISC-OS 3. It would
  25453. seem that the Pinboard module is automatically UNPLUGged following an
  25454. exit from the desktop. One solution involves using an alias to re-
  25455. initialise the Pinboard. If you have a desktop !Boot file then, before
  25456. the Pinboard command (if there is one), insert something like the
  25457. following:
  25458. 5.11
  25459. Set Alias$NewDesktop %RMreinit Pinboard |m %Desktop |m
  25460. 5.11
  25461. Obviously, in place of NewDesktop you can use any name that you like
  25462. (note that abbreviations still work so, in this case, you could use New.
  25463. to carry this out.)  If you wish to re-run the !Boot file on exiting
  25464. from command line mode, add -F !Boot after the %Desktop command.  If you
  25465. do not have a desktop !Boot file, use the Desktop Boot function from the
  25466. Acorn menu on the iconbar.
  25467. 5.11
  25468. From now on, to get back from the command line (after using the Exit
  25469. option), type New.  (or your appropriate alias) rather than Desktop.
  25470. 5.11
  25471. Simon Moy, Norwich Computer Services.
  25472. 5.11
  25473. •   Truncated filenames and RISC-OS 3 − It took me a long time to discover
  25474. that you type *Configure Truncate off  to stop the O.S. automatically
  25475. truncating filenames when saving and therefore (possibly) overwriting an
  25476. old version of a file which I wanted to keep!  A
  25477. 5.11
  25478.  
  25479. Hints and Tips
  25480. 5.12
  25481. •   Free Space − (Ref to Archive 5.11 p21) − The call to check the amount
  25482. of free space on a disc is ADFS_FreeSpace. On entry, R0 points to the
  25483. disc specifier and on exit R0 contains the free space and R1 contains
  25484. the size of the largest object that can be created. E.g.
  25485. 5.12
  25486. SYS“ADFS_FreeSpace”,“:0” to free%,largest%
  25487. 5.12
  25488. Change the ADFS to RamFS, SCSIFS or whatever you’re using.
  25489. 5.12
  25490. •   Free space on hard discs − For some time I had been concerned by the
  25491. apparent discrepancy between the figures returned by COUNT and FREE for
  25492. the space used by files on my SCSI discs. I was aware that COUNT only
  25493. counts the actual files and that FREE counts all the space used but I
  25494. still felt uneasy and my discs seemed to fill up alarmingly quickly.
  25495. 5.12
  25496. ADFS floppies use 2k for every directory and there is an initial 4k
  25497. overhead for the map on E format discs. My impression was that the same
  25498. amount of space would be used for each directory in all Filecore
  25499. systems, including SCSI, but that the map would take more space
  25500. depending on the size of the disc.
  25501. 5.12
  25502. So the first thing I did was to estimate the number of directories on my
  25503. 120M disc. I make full use of the directory structure to organise my
  25504. data, not to any great depth but with some width. RISC-OS encourages
  25505. this and, of course, applications are directories too. I reckoned there
  25506. were well over 1000 directories on the disc, but at 2k per directory,
  25507. this did not account for the difference.
  25508. 5.12
  25509. With a little experiment of adding a directory and looking for the
  25510. change in free space, I found that a directory was taking a staggering
  25511. 28k! This was where the space was going, but why?
  25512. 5.12
  25513. My Oak SCSI card is managed by their SCSIForm program which allows some
  25514. flexibility in defining the format of the disc. Having backed-up, I did
  25515. some experimenting with the parameters.
  25516. 5.12
  25517. I changed the sector size, but the minimum value for the 120M disc was
  25518. 512 bytes and, for a 42M removable was 256 bytes. I imagine the lowest
  25519. possible value of 128 bytes is only for small discs. Anyway, the changes
  25520. I made had only very small effects on space or disc transfer times. The
  25521. default is 512 bytes per sector, so I left it at that.
  25522. 5.12
  25523. Next I changed the file allocation size. This defaults to 2k on the
  25524. large disc and 1k on the other. The minimum is 256 bytes. The larger
  25525. values are chosen, I believe, to speed up transfer times to large files
  25526. on larger discs. I did not think this parameter would have an effect on
  25527. the structure, but look at the table below. The results were impressive.
  25528. For a loss of transfer time of less than 5% I was gaining a saving on
  25529. structure of 7 times! There were similar results for the smaller disc.
  25530. 5.12
  25531.    File Alloc’n  (bytes)   2048
  25532.    1024   512   256
  25533. 5.12
  25534.    Map Space (k)   57   47
  25535.    68.5   124
  25536. 5.12
  25537.    Dir’y Space  (k each)   28   15
  25538.    7.5   4
  25539. 5.12
  25540.    Mode 0   (k/sec)   1959   1864
  25541.    1864   1864
  25542. 5.12
  25543.    Mode 21  (k/sec)   994   955
  25544.    955   955
  25545. 5.12
  25546. I have not delved any further into why more than 2k per directory is
  25547. taken in SCSI but the figures suggest 14 blocks are used: 13 are <256
  25548. bytes and the other is 512-768 bytes.
  25549. 5.12
  25550. When I settled on a file allocation size of 256 bytes, I recovered about
  25551. 30M of extra space on the larger disc − about £200 worth, perhaps. Some
  25552. of this saving comes from taking much less space for the multitude of
  25553. small !Run,!Boot and !Sprites files.
  25554. 5.12
  25555. The only other make of SCSI of card I have access to is a Cumana one in
  25556. school, running in a fileserver for 600 users. This too has 1000+
  25557. directories. The Cumana SCSIManager program only offers formatting with
  25558. default values, so I changed the format using my Oak card and made
  25559. similar impressive savings. The disc runs happily with the Cumana card,
  25560. as you would expect, but will not dismount. This is no penalty with
  25561. self-parking heads.
  25562. 5.12
  25563. I then found an old ADFS hard drive and did the same check, finding that
  25564. a new directory takes 12k. RAMFS takes a straight 2k. I would be
  25565. interested to know if the same problem applies to IDE discs and what
  25566. formatting is possible with other SCSI cards.  Steve Drain, Portland.  A
  25567. 5.12
  25568.  
  25569.  
  25570.  
  25571.  
  25572. Impression Hints & Tips
  25573. 5.12
  25574. Ŷ•   Problems with version 2.17 − If you are having problems with version
  25575. 2.17 − such as the machine hanging up when you select large areas of
  25576. text − don’t blame Impression! Basically, what is happening is that CC
  25577. have implemented message-passing via the Wimp for their thesaurus and
  25578. these messages are rather large. This is a perfectly valid thing to do
  25579. under Acorn’s RISC-OS programming guidelines but not all filing systems
  25580. have been written to allow for such large messages and they end up over-
  25581. writing areas of memory − hence the crashes. Filing system versions
  25582. known to be a problem are:
  25583. 5.12
  25584.    Oak SCSI version 1.11
  25585. 5.12
  25586.    Ian Copestake IDE version 1.13,
  25587. 5.12
  25588.    Serial Port IDE version 1.01, March ’91
  25589. 5.12
  25590. CC say... “If your Archimedes gives problems, contact your Acorn
  25591. supplier or the appropriate company. Please do not contact Computer
  25592. Concepts − these problems are not caused by Impression but by the filing
  25593. system.”
  25594. 5.12
  25595. The Oak SCSI filer 1.11 has been replaced by version 1.16 but this ‘new’
  25596. version (actually two years old!) is available through Archive as an
  25597. upgrade for £12 inc VAT.
  25598. 5.12
  25599. The ICS filer 1.13 can be swapped for version 1.14 as a free EPROM
  25600. exchange from ICS. They also have a completely re-written IDE filer
  25601. (version 2) which is available from them for £15 +VAT. The customer
  25602. returns the old EPROM afterwards.
  25603. 5.12
  25604. The Serial Port filer 1.01 can be replaced with 1.02 as a free upgrade −
  25605. in this case, just send the floppy disc back to The Serial Port and they
  25606. will replace it.
  25607. 5.12
  25608. • Using borders − From David Wooldridge comes one of those tips that is
  25609. obvious to the initiated but might be new to some users. When choosing a
  25610. border in the Alter Frame window (view mode), don’t forget you can see
  25611. the various borders by pointing at the white border in the window and
  25612. pressing menu. A border picker window opens, allowing you to select from
  25613. all the available borders. This tip is in the manual but, as we all
  25614. know, not everyone reads manuals − own up, please, if this is new to
  25615. you! (Me for one! Ed.)
  25616. 5.12
  25617.  
  25618.  
  25619.  
  25620. The Readers Write!
  25621. 5.12
  25622. • Laser Jet printing with RISC-OS3 − Gerald Fitton (of Pipeline fame!)
  25623. has experienced a problem when using RISC-OS 3, !Printers, Laser Jet II
  25624. and Impression. He has found that documents in the portrait format print
  25625. 7 mm out of position on the vertical axis and are offset 5mm to the
  25626. right. This occurs even when the page borders are set to 0 mm. If he
  25627. increases the latter figure, the print out is further out of position.
  25628. As Gerald says, ‘What I need is a minus value for my borders. Help!’ Has
  25629. anyone else come across this particular problem?
  25630. 5.12
  25631. • Keeping track of Draw and Sprite files − In Archive 5.9 p37 Steve
  25632. Hutchinson was asking advice on keeping track of his Draw and sprite
  25633. files and was recommended two viewing applications. There is also an
  25634. easy hardcopy method namely !PicList which was on the Acorn User October
  25635. 1991 disc after being upgraded from the May version. The application
  25636. makes a set of sprite “pages” containing any Draw or sprite pictures
  25637. that are dropped into it. The pictures are displayed in a grid and are
  25638. labelled with their name/path above them. The application is easy to use
  25639. from the iconbar having options to:
  25640. 5.12
  25641. •   Set up the size of the “page” (defaults to print size if a driver is
  25642. loaded),
  25643. 5.12
  25644. •   Set the number of columns and rows required − depending on the
  25645. required detail of each picture,
  25646. 5.12
  25647. •   Set the screen mode for the resultant “pages”,
  25648. 5.12
  25649. •   Choose the path/name format to name each picture.
  25650. 5.12
  25651. You can drop directories onto the icon and several pages are generated.
  25652. The pages can be stepped through to view and saved to make a hardcopy of
  25653. each page. Alan Wilburn, Hartlepool.
  25654. 5.12
  25655. • Auto destruct! − In the Hints and Tips section of the June edition of
  25656. Archive, there was a mention of possible problems with the auto-save
  25657. facility of Impression under the title “Auto-destruct!”. Version 2.16
  25658. (and 2.17) of Impression does not appear to be as dangerous in this
  25659. respect. If the auto-save facility is turned on but with the “With
  25660. prompt” switch left off, a prompt will still appear on-screen before the
  25661. first time the document is auto-saved.
  25662. 5.12
  25663. This also occurs the first time the document is auto-saved after it has
  25664. been reloaded. It is mentioned in the Impression 2.15 release notes on
  25665. pages 1 and 3.
  25666. 5.12
  25667. Still on the subject of Impression, I have two problems that readers of
  25668. Archive may be interested in:
  25669. 5.12
  25670. Spelling checker − If you check and replace a misspelled word by using
  25671. <Ctrl-W> to invoke the spelling checker, this appears to work correctly
  25672. except that if you have typed nothing after the word, it also has the
  25673. effect of <Ctrl-B> and returns you to basestyle. Obviously the solution
  25674. is to always type at least a space after the word before using <Ctrl-W>.
  25675. 5.12
  25676. PrintBJ (the extension module to print draft text) − This makes a
  25677. reasonable attempt at interpreting styles as far as different fonts and
  25678. font sizes are concerned but seems unable to cope with rulers or effects
  25679. that control the position of the text on the page. Tabs it gets
  25680. completely wrong, right aligned text is centred, centred text is centred
  25681. but using a page width about three quarters of the actual width. This is
  25682. using the Canon BJ-10e. I have phoned Computer Concepts who suggested I
  25683. wrote enclosing example documents both printed and on disc. This I did
  25684. several months ago and have not received a reply. Has anyone else
  25685. experienced these problems or indeed found a solution? Nick Edgar,
  25686. Doncaster.
  25687. 5.12
  25688. I can understand Nick’s problems and only print out in graphics format.
  25689. My method of working for proofing documents is always to print at a
  25690. lower resolution − and hence achieve a quicker print out. Users of the
  25691. Deskjet 500 have the option of using the draft mode on the printer for
  25692. this purpose and leaving the resolution set on the driver unchanged.
  25693.  
  25694. Hints and Tips
  25695. 6.1
  25696. •   Alt characters − On upgrading from RISC-OS 2 to RISC-OS 3.1, I thought
  25697. I had lost my ‘×’ character. I eventually found that it had moved from
  25698. <alt-,> to <shift-alt-,>. (Even on RISC-OS 3.0 on the A5000 it is still
  25699. <alt-,>.) So I investigated all the possible ALTernatives(!). Here are
  25700. all the ALT characters I found. They are laid out in QWERTY order but
  25701. where no special character appeared, the key is not included in the
  25702. list.
  25703. 6.1
  25704. key   ALT   shift ALT
  25705. `   ¬   °
  25706. 1   ¹   ¡
  25707. 2   ²  
  25708. 3   ³  
  25709. 4   ¼  
  25710. 5   ½  
  25711. 6   ¾  
  25712. 9      ±
  25713. r   ¶   ®
  25714. y      ¥
  25715. o   ø   Ø
  25716. p   þ   Þ
  25717. \      ¦
  25718. a   æ   Æ
  25719. s   ß   §
  25720. d   ð   Ð
  25721. f      ª
  25722. z   «  
  25723. x   »  
  25724. c   ¢   ©
  25725. m   µ   º
  25726. ,      ×
  25727. .      ÷
  25728. /      ¿
  25729. 6.1
  25730. I think that is all there is, but if anyone finds any more, let us know.
  25731. Ed.
  25732. 6.1
  25733. •   Annual service kit − In answer to Paul’s comment about hard drives in
  25734. Archive 5.12, p.8, I’d like to sing the praises of the Alarm application
  25735. (on one of the support disks or in ROM on RISC-OS 3). (You will see the
  25736. link if you read on! Ed)
  25737. 6.1
  25738. I, too, would have forgotten completely about the annual replacement of
  25739. filter and batteries, but for this application (which, thanks to my Boot
  25740. file, always resides on the iconbar): When my machine was a year old,
  25741. Alarm reminded me of this fact in no uncertain terms, (‘urgent’ alarm,
  25742. repeating every hour), so there was very little chance of overlooking
  25743. this necessary bit of maintenance. Jochen Konietzko, Köln, Germany.
  25744. 6.1
  25745. •   Apple Laser Writer II NT − Here is some information for anyone wanting
  25746. to make a cable link from an Archimedes to an Apple Laser Writer II NT.
  25747. The connections are as follows...
  25748. 6.1
  25749.    Archimedes   LaserWriter II NT
  25750.    Pin         Pin
  25751.    2   (RXD)   −−−−   3   (TXD)
  25752.    3   (TXD)   −−−−   2   (RXD)
  25753.    5   (0V)   −−−−   7   (0V)
  25754.    6   (DSR)   −−−−   20   (DTR)
  25755. The Archimedes pins DCD (1), DTR (4) and CTS (8) are all linked
  25756. together.
  25757. 6.1
  25758. When using a RISC-OS printer driver you should choose the Serial
  25759. connection with 9600 baud rate, 8 data bits, no parity and 1 stop bit. 
  25760. XOn/XOff protocol should also be used.
  25761. 6.1
  25762. •   DDE Pascal − Some would-be users of DDE !Pascal (on Careware 17) will
  25763. have discovered that it won’t function in Computer Concepts’ Compressed
  25764. Filing System (CFS), where it generates the error ‘Special field not
  25765. allowed in filesystem prefix to OS_CLI’. This means that the command
  25766. line interpreter, which is invoked to run the Pascal tool, objects to
  25767. some pathname which begins with the prefix ‘CFS#’. The offending
  25768. pathname turns out to be the <Pascal$Dir>.Pascal, as assigned into
  25769. Alias$Pascal by the !Run file with the apparent function of enabling the
  25770. compiler to be located in the application directory. The remedy is to
  25771. comment out the line which assigns Alias$Pascal and move the compiler
  25772. (i.e. <Pascal$Dir>.Pascal) to your library. This brings the configura
  25773. tion into line with that of the C compiler and other DDE tools and
  25774. causes ‘*Pascal’ commands to be serviced by default from the current
  25775. library without any explicit reference to a filesystem.  Mike Kinghan,
  25776. Oxford
  25777. 6.1
  25778. •   DDE Pascal (Careware 17) − The release of the public-domain Norcroft
  25779. Pascal compiler for the Archimedes is potentially extremely useful,
  25780. since, although ISO-Pascal is very good, it does not interface well with
  25781. the operating system. More seriously, programs compiled with ISO-Pascal
  25782. do not interface well either.
  25783. 6.1
  25784. The Norcroft system is easy to use and install and does everything that
  25785. is claimed of it. Unfortunately, users should be aware of some problems,
  25786. especially since Acorn obviously does not wish to maintain the product.
  25787. 6.1
  25788. I have some extra severe tests for Pascal, which I have used to test the
  25789. compiler. This shows that the compiler has some errors in the evaluation
  25790. of set expressions: the following program failed (printing True rather
  25791. than False):
  25792. 6.1
  25793. {4 5 6 4 0 3    3000 }
  25794. {the parameters from the full test which failed. }
  25795. program test (output);
  25796. const
  25797.    ten = 10;
  25798. var
  25799.    i: 1..ten;
  25800. begin
  25801. i := 11; (compilation error here?)
  25802. i := ten + 1; (compilation error here?)
  25803. writeln(‘Error not detected‘) ;
  25804. end.
  25805. 6.1
  25806. The first error is caught at compile-time by almost all Pascal com
  25807. pilers, including ISO-Pascal. The second error is caught by almost all
  25808. compilers at run-time, and a few at compile-time.
  25809. 6.1
  25810. When using the quit option in the Pascal menu, the system still allows
  25811. command line usage of Norcroft Pascal, although the icon is removed.
  25812. 6.1
  25813. The final significant problem is that programs written in ISO-Pascal do
  25814. not necessarily compile without the ISO option being set. This is
  25815. annoying, since many programs will wish to use some extensions. I don’t
  25816. know of any other Pascal compiler for which the extension option means
  25817. less (in some cases).  Brian Wichmann, NPL.
  25818. 6.1
  25819. •   Directory size − Regarding the issue on directory sizes, etc in the
  25820. hints & tips section, there are a few other points...
  25821. 6.1
  25822. RISC-OS 2 has some problems with certain combinations of disk size and
  25823. allocation unit, so beware. The problem usually causes the machine to
  25824. hang when entering a directory. I have only experienced this using large
  25825. allocation units on small disks.
  25826. 6.1
  25827. The fact that a new dir appears to take 38Kb isn’t the whole story, as I
  25828. believe that there is a facility for small files within a directory to
  25829. use some of the ‘wasted’ space. However, if you tend to have lots of
  25830. directories with few files, space does tend to get wasted.
  25831. 6.1
  25832. The best solution as far as both disk, space and speed is concerned is
  25833. to use D format, which uses the ‘correct’ amount of space for direc
  25834. tories and hardly anything for the map. (Remember that there are two
  25835. copies of the map in E format.) D format disks are also MUCH easier to
  25836. recover files from if the root directory or map gets corrupted and files
  25837. can never be fragmented (which slows down access). The only disadvantage
  25838. is the occasional need to compact but I find this a small price to pay.
  25839. I would only recommend E format for non-technical users.
  25840. 6.1
  25841. The same issues will apply to all FireCore based filling systems such as
  25842. IDE, etc.  Mike Harrison
  25843. 6.1
  25844. •   Impression/Squirrel − CC’s !Importer (also in their Business Supple
  25845. ment) is supplied by Digital Services with Squirrel. Here is some
  25846. experience that might help other people.
  25847. 6.1
  25848. Using Squirrel, I created a database with 22 fields. I then tried to
  25849. mail merge the resultant report CSV file using !Importer. I got an error
  25850. message saying ‘Subscript out of range (Code 6150).’ After some hours of
  25851. fiddling, I eventually found that if I reduced the number of fields in
  25852. the CSV file to 16, !Importer worked OK. Nick Horn, Thetford.
  25853. 6.1
  25854. •   Second internal hard drive in an A410/1 − I fitted a 40Mb ST506 hard
  25855. drive to my A410, thinking it would be more than adequate. However, with
  25856. the acquisition of the PC Emulator and the formation of a 10Mb DOS
  25857. partition, I was rapidly running out of room. I subsequently purchased a
  25858. second hand 20Mb ST506 drive, which I decided to fit internally rather
  25859. than buy a p.s.u., case and fan. I thought of making some mounting
  25860. brackets but, having seen an advert for a SPACE kit from PRES which
  25861. included brackets and all the leads, I changed my mind and went for
  25862. that. Price was £38.72 inc VAT. The work involved was to:
  25863. 6.1
  25864. 1)   Remove top two podule blanking plates.
  25865. 6.1
  25866. 2)   Fit metal brackets to drive using screws supplied.
  25867. 6.1
  25868. 3)   Remove the 34 way data cable and replace it with the one supplied,
  25869. connecting it to the existing drive and mother board (SK11), leaving
  25870. spare connector to connect to the second drive later.
  25871. 6.1
  25872. 4)   Connect the supplied 20 way control cable to the spare connector
  25873. (SK8) on the mother board, leaving the other end to be connected to the
  25874. second drive later.
  25875. 6.1
  25876. 5)   Remove the power cable from the psu and existing drive and replace
  25877. it with the supplied cable, leaving the spare connector for the second
  25878. drive.
  25879. 6.1
  25880. 6)   Lead all three cables to the back of the computer and through the
  25881. space left by removing the blanking plates and connect them to the
  25882. second drive.
  25883. 6.1
  25884. 7)   Attach the blanking plates to the metal brackets on the second
  25885. drive using nuts & bolts supplied.
  25886. 6.1
  25887. 8)   Ensure second drive is set to ‘1’ by changing the appropriate DIP
  25888. switch or DS-Jumper.
  25889. 6.1
  25890. 9)   Insert the drive through the back of computer until the front of
  25891. the brackets rests on backplane connectors (psu side) and the blanking
  25892. plates line up with the back of the computer. Screw in blanking plate
  25893. screws.
  25894. 6.1
  25895. 10)   Once computer is up and running it will have to be configured for
  25896. a second hard drive.
  25897. 6.1
  25898. The work was very easy to carry out and the instructions supplied were
  25899. very good. The drive then has to be formatted using Acorn’s HFORM
  25900. program. The program had to be modified to do the ‘slow’ formatting by
  25901. altering the following lines:
  25902. 6.1
  25903. 7530 REMmed out
  25904. 7540 REMmed out
  25905. 7550 REM removed
  25906. 7560 REM remove
  25907. 6.1
  25908. Once this was done, the drive formatted with no problems and, using the
  25909. PC Emulator’s configure program, I created a 19 Mb DOS partition.
  25910. 6.1
  25911. I would recommend this solution of gaining extra drive capacity if you
  25912. have access to a cheap drive and do not mind losing the space of two
  25913. half width podules.  Chris Bass, Grimsby
  25914. 6.1
  25915. •   Mah Jong from CIS − If you have recently purchased the Mah Jong game
  25916. from Cambridge International Software, you may wish to check for the
  25917. presence of a ‘benign’ virus. This can be done by double-clicking on the
  25918. !MahJong game while holding the <shift> key down. Choose the ‘Display >
  25919. Full Info’ option on the filer window. If the MemAlloc module is larger
  25920. that 2608 bytes then your copy is infected and you should contact CIS
  25921. directly at Unit 2a, Essex Road, London  N1 3QP or telephone
  25922. 071−226−3340.
  25923. 6.1
  25924. •   Measuring free space − I would like to say a big thank you to all the
  25925. people who wrote in response to my plea for help in finding a way of
  25926. checking, from within a program, whether there is enough space for a
  25927. file before it is saved.
  25928. 6.1
  25929. The most ingenious suggestion was to use the following commands:
  25930. 6.1
  25931. *FREE {ram:ccc }
  25932. X=OPENUP(“RAM:CCC”)
  25933. REPEAT B=BGET#X: UNTIL B=ASC“=”
  25934. REPEAT B=BGET#X
  25935.  IF B>47 AND B<58 B$=B$+CHR$B
  25936. UNTIL B=ASC“B”
  25937. *SHUT
  25938. 6.1
  25939. to put the free space in the variable B$.
  25940. 6.1
  25941. Some people pointed me to ‘ADFS_FreeSpace’ (also RamFS_FreeSpace,
  25942. SCSIFS_FreeSpace, etc.) which can be used with syntax such as:
  25943. 6.1
  25944. SYS “ADFS_FreeSpace”,Drive$ TO Free%,Largest%.
  25945. 6.1
  25946. The same information was given on page 7 of the Archive 5.12.
  25947. 6.1
  25948. Although all these answers have been very helpful, they have also taught
  25949. me a salutary lesson, namely that you have to be very precise when
  25950. describing your problem: because, although they have answered the
  25951. question (and told me things that I did not know) they haven’t actually
  25952. told me what I needed to know!
  25953. 6.1
  25954. What I actually want is a filing system independent way of finding out
  25955. whether a file with any given path name can be saved. For instance, if
  25956. the user of my program indicates (by dragging an icon to a filer window
  25957. or typing into a save box) that he wants to save a file with the path
  25958. name ‘XXXFS::$....Filename’ and if my program knows how long the file
  25959. will be, I want my program to be able to find out whether the file will
  25960. fit in the specified place, without knowing in advance whether ‘XXXFS’
  25961. stands for ADFS or CFS or SCSIFS or RamFS or whatever. The program also
  25962. has to work if a path is not specified and the file is simply to be
  25963. saved to the CSD.
  25964. 6.1
  25965. A couple of correspondents have pointed out that there is an SWI called
  25966. ‘FileCore_FreeSpace’ (on page 1021 of the PRM). However, in order to use
  25967. this you have to know the ‘private word’ of the filing system in
  25968. question and, so far as I can see, this SWI can only therefore be called
  25969. by a filing system module, which is not much use to a mere mortal
  25970. programmer!
  25971. 6.1
  25972. I still, therefore, believe that the only generalised way of doing what
  25973. I want is to use syntax like the following :
  25974. 6.1
  25975. X%=OPENOUT(Filename$)
  25976. SYS “XOS_Args”,6,X%,Length% TO ,,Allocated%
  25977. IF Allocated% >= Length% THEN ... go ahead and save it.
  25978. 6.1
  25979. This is hardly elegant but it seems to work.
  25980. 6.1
  25981. I understand that RISC-OS 3 will include the generalised SWI that I
  25982. want. However, this will not be much use, of course, in a program that
  25983. is designed to work in RISC-OS 2 as well!  Hugh Eagle, Horsham
  25984. 6.1
  25985. •   Formatting numbers (continued) − Over the last two months, I have been
  25986. following the correspondence on Basic’s number formatting ability (PRINT
  25987. and STR$) with some interest. Has the increased size and complexity of
  25988. RISC-OS caused the oversight of some of the slightly esoteric but very
  25989. powerful features of BBC Basic? One such feature is the @% variable in
  25990. Basic. The @% variable controls the format of the PRINT and STR$
  25991. functions and much of last month’s discussions could have been settled
  25992. by altering the @% variable so that STR$ was formatted in the same way
  25993. as PRINT.
  25994. 6.1
  25995. @% is fully discussed in the manuals that accompany the computer under
  25996. the PRINT command but I will try to give some useful pointers here. As
  25997. with all Basic integers, the @% variable is four bytes long. When Byte 4
  25998. (the left-most byte) is zero Basic ignores @% when using the STR$
  25999. function (this is the default and the source of last month’s problems)
  26000. otherwise STR$ is formatted exactly the same as PRINT. Byte 3 allows the
  26001. choice of three different formatting types: 0 − general (the default), 1
  26002. − exponent and 2 − fixed. Byte 2 specifies the number of digits printed
  26003. and Byte 1 gives the print field width when you use comma separators in
  26004. PRINT.
  26005. 6.1
  26006. Our problem arises from two areas: the way computers represent numbers
  26007. and the value of @%. At this point, I think it is necessary to take an
  26008. aside into the nature of real number representation in computers so, if
  26009. you are only interested in how to circumvent Basic’s printing problems,
  26010. skip to the end of this article.
  26011. 6.1
  26012. Common advice to novice programmers is not to use real variables unless
  26013. you really have to. Speed and storage reasons are normally given for
  26014. simplicity but a far more important reason is that real numbers are not
  26015. exact in the same way as integers and they must be treated differently.
  26016. A classic example is the problem in mathematics of dealing with two
  26017. representations of, say, the number one: which could be 1.000... or
  26018. 0.999.... As far as we are concerned both are the same but if we ask a
  26019. computer whether or not they are equal, we find not. This is due to no
  26020. fault of the computer or the programmer but the acceptance that
  26021. computers cannot store the infinite expressions for real numbers but
  26022. must approximate to a number of decimal places and so springs up the
  26023. subject of numerical analysis.
  26024. 6.1
  26025. How then do we equate real numbers? Well, we must choose a value for a
  26026. zero! That is a number where any number smaller than it we consider to
  26027. be ‘as good as zero’. An example for Basic is 10−7, any smaller and the
  26028. errors in calculations become significant. So when we want to check
  26029. equality of two numbers a and b we use the expression (ABS(a­b) < 1E-7).
  26030. If this is true then the two numbers are ‘as good as equal’. (ABS is
  26031. used since we are only interested in the magnitude of the difference
  26032. between the numbers.)
  26033. 6.1
  26034. The second important point with numbers stored in computers is that they
  26035. are stored in binary. Yes, of course, you all knew that but fewer people
  26036. are aware how computers store fractions. Much like in decimal when we
  26037. have a decimal point, computers use a binary point where the digits to
  26038. the right of the point have place values 1/2, 1/4, 1/8, etc. In decimal
  26039. there is a problem of representing fractions like 1/3 or 1/6 because the
  26040. prime factors of 3 or 6 are not divisible by the factors of 10 (2, 5) so
  26041. you get infinite decimal expansions for them. In binary, the problem is
  26042. greater because there is only one factor of two (unlike two factors of
  26043. ten) so even more numbers have infinite representations (this is why
  26044. some people advocate using base 12 instead of base 10 for day to day
  26045. life − it makes mental arithmetic so much easier). This means that
  26046. simple decimal numbers like 0.6 have an infinite expansion in binary.
  26047. 6.1
  26048. What has all this got to do with printing numbers in Basic? Well, an
  26049. appreciation of what is going on when you store numbers will help you
  26050. avoid the pitfalls that last month’s contributors highlighted. Now that
  26051. we are aware that innocuous looking numbers like 2.1 can have infinite
  26052. expansions when stored in binary, it becomes clear that 2.1 × 10 may not
  26053. equal 21 but, perhaps, 20.99999999!
  26054. 6.1
  26055. Is there anything that we can do about this? Yes, indeed there is. We
  26056. can tell Basic to round off the number to nine decimal places instead of
  26057. attempting to print 10 which extends the precision beyond the accuracy
  26058. (in general Basic is accurate to nine decimal places unless you are
  26059. using the floating point version where I believe 19 is the limit but not
  26060. having a RISC-OS 3...).
  26061. 6.1
  26062. Now we come back to @%. At default, @% specifies 9 decimal places but it
  26063. only affects PRINT and not STR$ which defaults to ten. To alter this,
  26064. all we need to do is set the byte 4 flag in @% to one. Try PRINT
  26065. STR$(0.6) and then set @% = &0100090A and try again (by the way, &90A is
  26066. the default value for @% whereas STR$ uses &A0A if byte 4 is unset).
  26067. 6.1
  26068. If we want to print money then we can set @% to two decimal places by
  26069. &0002020A (remember to set byte 4 to one if you want to use STR$). This
  26070. has the added bonus of allowing you to print the number rounded off but
  26071. still maintain the extra places for further calculations.
  26072. 6.1
  26073. I hope you can now see the power and simplicity of using @%. My only
  26074. warning is that if you wish to use several formats in your program, then
  26075. either save the previous @% or declare it as a local variable.  Emmet
  26076. Spier, Guildford.
  26077. 6.1
  26078. This subject seems to have opened up quite a debate. Emmet has agreed to
  26079. edit any comments regarding rounding errors for us and so if your wish
  26080. to add to the debate you should write to him directly. Emmet Spier, 6
  26081. Parklands Place, Guildford, Surrey  GU1 2PS.
  26082. 6.1
  26083. •   PC keyboards for A4 − A word of warning − not all PC type keyboards
  26084. work on the A4 (or all PCs for that matter!), so take the A4 to the shop
  26085. and try before you buy! Reasonable ones can be had for about £40 at some
  26086. computer fairs. Note that non PS/2 type keyboards (with the 5 pin DIN
  26087. plug) can be used with an adaptor or by changing the plug.  Mike
  26088. Harrison
  26089. 6.1
  26090. •   RISC-OS 3 DOS partitions − Because DOS filenames (including exten
  26091. sions) are in general longer than the maximum length of a valid ADFS
  26092. filename (10), it is not always possible to copy or move DOS files from
  26093. hard or floppy discs directly to the ADFS.
  26094. 6.1
  26095. The !MultiFS utility as supplied with the PC Emulator solves this by
  26096. allowing you to truncate the DOS filename while the translation process
  26097. takes place. Another very useful option (which I often use when copying
  26098. files from C programs) is to force !MultiFS to handle DOS extensions as
  26099. (hierarchical) directories.
  26100. 6.1
  26101. However, when the filetype of a DOS partition on your ADFS hard disc is
  26102. set to ‘DOSdisc’, RISC-OS 3 will display a filer window for the
  26103. partition when you try to open the folder, while !MultiFS just ignores
  26104. it (i.e. no :C drive on the iconbar.) This is all very nice but RISC-OS
  26105. 3 doesn’t offer the nice name translation options mentioned above. To
  26106. enable !MultiFS to display your DOS partitions, just set their filetype
  26107. to ‘data’ before you start !MultiFS. Remember to use the command line
  26108. and not the filer menu because the latter doesn’t allow you to change
  26109. the the filetype of DOSdiscs. I inserted 3 lines for each DOS partition
  26110. in the !MultiFS !Run file to swap between ‘DOSdisc’ and ‘data’ type
  26111. partitions when !MultiFS is started:
  26112. 6.1
  26113.    *Filer_CloseDir    <PCe$Drive_X>
  26114. 6.1
  26115. *SetType    <PCe$Drive_X> Data
  26116. 6.1
  26117. directly after setting the system variable <PCe$Drive_X>, and
  26118. 6.1
  26119.    *SetType    <PCe$Drive_X> DOSDisc
  26120. 6.1
  26121. at the end of the !Run file (although the comment tells us not to do
  26122. so).
  26123. 6.1
  26124. Unfortunately, there are some bugs in !MultiFS: When you copy to a
  26125. MultiFS filer window, you must ensure name translation is not set to
  26126. hierarchical or you will end up with wildcards (‘?’) in filenames. When
  26127. this happens you must use DOS itself to delete the file because RISC-OS
  26128. fails to wipe those objects. Another bug appears if you shut down your
  26129. system after using !MultiFS. This results in an error report and a task
  26130. manager crash.  Paul Groot, Holland.
  26131. 6.1
  26132. •   Saloon Cars Deluxe − If you are having problems running Saloon Cars
  26133. Deluxe, it may be worth knowing that you must have the Font Manager
  26134. installed for it to run.
  26135. 6.1
  26136. •   Shareware 44 (Fortran Friends) update − There is a small bug in the
  26137. !Fortran77. DesktopF77 program. Line 1400 should read:
  26138. 6.1
  26139. 1400 IF INSTR(b$,“rror”) THEN E%+=1
  26140. 6.1
  26141. This allows errors in the code generator part of the compiler to be
  26142. detected. Kate Crennell, Oxon.
  26143. 6.1
  26144. •   Zelanites cheat − The following program provides a cheat for
  26145. Zelanites. It stops the number of lives decreasing below 9.  Steve
  26146. Edwards, Stourbridge.
  26147.  10 REM >:0.$.hints.zelcheat
  26148.  20 REM Archive hints & tips section
  26149.  30 REM (c) S.EDWARDS 1992
  26150.  40 REM infinite lives for Zelanites
  26151.  50 REM ****************************
  26152.  60 REM * When you have run the program the game should *
  26153.  70 REM * then be run as normal. This time when you die  *
  26154.  80 REM * you will have not gone down one life but up   *
  26155.  90 REM * to NINE lives, which stay with you for ever.  *
  26156. 100 REM *                          *
  26157. 110 REM ****************************
  26158. 120 :
  26159. 130 DIM store% &400
  26160. 140 MODE 0
  26161. 150 PROCDisc_op
  26162. 160 PRINT‘********FINISHED********’
  26163. 170 PRINT
  26164. 180 PRINT‘****NOW GET BLASTING****’
  26165. 190 END
  26166. 200 :
  26167. 210 DEF PROCDisc_op
  26168. 220 PRINT ‘Put !ZELANITE disc into drive 0’
  26169. 230 PRINT ‘   and press a key.’
  26170. 240 A=GET
  26171. 250 PRINT ‘Loading  sector information’
  26172. 260 SYS ‘ADFS_DiscOp’,0,1,&50400, store%,&400
  26173. 270 store%?&67=&6A:REM Original code =&2A
  26174. 280 INPUT‘Are you are ready to make the change ?’;A$
  26175. 290 IF LEFT$(A$,1)=‘N’ OR LEFT$(A$,1)=‘n’ THEN END
  26176. 300 IF LEFT$(A$,1)=‘Y’ OR LEFT$(A$,1)=‘y’ THEN
  26177. 310   PRINT‘Saving cheat back to disk’
  26178. 320   SYS ‘ADFS_DiscOp’,0,2,&50400, store%,&400
  26179. 330 ENDIF
  26180. 340 ENDPROC
  26181.  
  26182. Hints and Tips
  26183. 6.2
  26184. •   3D icons for RISC-OS 3.1 − Here are some tips for those of you who
  26185. upgraded from RISC-OS 3.00 to RISC-OS 3.10 (and for anyone else who is
  26186. interested in a fancy desktop).
  26187. 6.2
  26188. If you have used the fancy 3D-like window borders on your A5000, you
  26189. will probably have noticed that, with RISC-OS 3.1, the borders will not
  26190. install properly. This is because RISC-OS 3.0 programs used the
  26191. ‘IconSprites’ command to install the wimp’s tool sprites (i.e. borders),
  26192. while in RISC-OS 3.1 there is a new command to install user defined
  26193. window tools:
  26194. 6.2
  26195. *ToolSprites <spritefile>
  26196. 6.2
  26197. This is, I think, because the border sprites are now held in a separate
  26198. sprite area for faster redrawing. So, the only thing you have to do is
  26199. to change the command ‘IconSprites’ into ‘ToolSprites’ at the appropri
  26200. ate places in your files. Note that you can also re-install the default
  26201. window tools by entering ‘ToolSprites’ on the command line.
  26202. 6.2
  26203. The small utility I use to install enhanced icons (a modified version of
  26204. !SetIcons), shows another minor modification of RISC-OS 3.1. It is now
  26205. assumed that some icons have the same dimension. For example, some
  26206. border elements are painted from two sets of sprites − one that is
  26207. normally used and one that is used when you select this particular
  26208. border element. If corresponding sprites within these sets are different
  26209. in size, you will see that some parts of the elements are not painted
  26210. when you select them. To overcome this problem, you can adjust the sizes
  26211. with !Paint.
  26212. 6.2
  26213. For those programmers who liked the Impression-style dialogue boxes,
  26214. there exists a module called ‘Interface’. This module takes care of most
  26215. of the code to generate fancy icon borders. RISC-OS 3.0 has some in-
  26216. built extras to achieve the same thing without the need to insert extra
  26217. lines of code into your program. (The programmer only has to define some
  26218. validation strings which contain the information to generate the desired
  26219. effect.) However, because the validation string command syntax was
  26220. essentially the same as the syntax used by the Interface module, there
  26221. were sometimes problems when using the Interface module with RISC-OS
  26222. 3.0.
  26223. 6.2
  26224. After I installed the new RISC-OS 3.1 ROMs, I was surprised to see that
  26225. my own (RISC-OS 3.0!) programs didn’t have fancy borders any more. After
  26226. some experimenting with the validation strings, I discovered that the
  26227. command syntax is now different from the syntax used by the Interface
  26228. module. To be more specific, RISC-OS 3.1 makes use of ‘r<int><colour>’
  26229. (where <int> is a number between 0 and 8 and <colour> is a WIMP colour
  26230. number), instead of ‘b<int>, ...’. This modification probably has been
  26231. made to overcome the incompatibility problems with the Interface module.
  26232. The simplicity with which you can use this prompts a question: Why don’t
  26233. the ROM based applications like Draw use this facility? I guess this is
  26234. just another ‘Acorn-mystery’.  Paul Groot, Holland.
  26235. 6.2
  26236. • Editing paper sizes in RISC-OS 3 − If attempts are made to edit the
  26237. paper sizes contained within the standard RISC-OS 3 printer driver
  26238. files, it will be found that any changes made to the Text Margins
  26239. section will revert to 0 when the window is closed, even if Save
  26240. Settings is selected. This is due to a bug, but can be rectified by
  26241. editing the paper files directly.
  26242. 6.2
  26243. Editing any of the paper sizes results in a new file called PaperRW
  26244. being generated in the Printers application directory. This file can be
  26245. modified using Edit. Make sure that the Printers application is not
  26246. running (i.e. Choose Quit from the iconbar menu if it is). Find the
  26247. !Printers application (normally in the App1 directory) and open it using
  26248. Shift-double-click. Open the file called PaperRW by Shift-double-
  26249. clicking on it. Scroll down the file until you find the name of the
  26250. paper setting which you defined or modified. It will look something like
  26251. ’pn: Fanfold A4’. At the bottom of the set of numbers relevant to this
  26252. paper setting are five values (called tb, tt, tl, tr, th) which
  26253. correspond to the text bottom, top, left and right margins and the
  26254. height (in lines) respectively. Alter the values from 0 to your required
  26255. numbers and save the file. When you re-run the Printers application,
  26256. your paper sizes will be rectified.  Simon Moy, N.C.S.
  26257. 6.2
  26258. •   How NOT to treat your SCSI hard disk − A few weeks ago I found a new
  26259. way to get rid of all those files that clogged my external hard disk(!)
  26260. 6.2
  26261. Every verify I did showed up one questionable sector, so I decided to
  26262. map it out as defective. The *Defect command applies only to ADFS, so I
  26263. browsed through the SCSI disk’s manual and, finally, found what I was
  26264. looking for (or so I thought).
  26265. 6.2
  26266. Morley supply their hard disks with a formatter application which,
  26267. amongst other things, can add defects to a list. There is a warning that
  26268. a low level format would result in total loss of data but, later in the
  26269. description, an option was mentioned to decide whether or not to do the
  26270. low level format while running the application.
  26271. 6.2
  26272. This led me to believe that clicking on ‘No’ would keep my data intact −
  26273. alas, I was wrong!
  26274. 6.2
  26275. The Morley hotline informed me that I had in fact done a high level
  26276. format which wipes out the information about the addresses for each
  26277. file. As the passage in the manual could be misunderstood, they very
  26278. kindly offered to restore my data for me free of charge (just p&p).
  26279. (Great service!!)
  26280. 6.2
  26281. However, it was not to be: I forgot to inform them that I use Computer
  26282. Concepts’ Compression on most of my files and this, I was told later,
  26283. encodes the files in such a way that retrieval becomes virtually
  26284. impossible.
  26285. 6.2
  26286. I learned two things from my self-made disaster:
  26287. 6.2
  26288. 1) Even the excellent Compression is not proof against all kinds of
  26289. fools.
  26290. 6.2
  26291. 2) 800 Kb floppy disks are just not good enough as a backup medium! I
  26292. shudder at the thought that I will have to feed 112 floppies into my
  26293. machine, once the hard disk returns from England.
  26294. 6.2
  26295. As a consequence, for future backups I have ordered a 20Mb floptical
  26296. drive from Morley, to be sent as soon as it is able to read and write
  26297. Acorn floppy formats.  Jochen Konietzko, Köln, Germany.
  26298. 6.2
  26299. •   Humour in RISC-OS 3.1! − You will be pleased to hear that humour still
  26300. exists within Acorn. If you load ‘Resources:$.Resources.
  26301. Switcher.Templates’ into the template editor, FormEd, you get an
  26302. interesting message.  Knut Folmo, Norway
  26303. 6.2
  26304. •   Loading multiple Impression documents − If you want to load a number
  26305. of Impression files at once, just select them (with rubber band dragging
  26306. on RISC-OS 3, if you like) and drag them down onto the Impression icon
  26307. on the iconbar.
  26308. 6.2
  26309. • Memory size from Basic − In Basic, there is no specific way to find
  26310. out how much physical memory is fitted to the host machine. However, it
  26311. can be calculated using a SWI call as in this example:
  26312. 6.2
  26313. 10 SYS “OS_ReadMemMapInfo” TO PageSize%, NumOfPages%
  26314. 6.2
  26315. 20 TotalMemory% = PageSize% * NumOfPages%
  26316. 6.2
  26317. 30   REM This value is in bytes
  26318. 6.2
  26319. 40 Total% = TotalMemory% / 2^20
  26320. 6.2
  26321. 50   REM This value is in Mbytes
  26322. 6.2
  26323. Simon Moy, N.C.S.
  26324. 6.2
  26325. •   More RISC-OS 3.1 Alt Characters The current A5000 Welcome Guide
  26326. mentions some additional Alt-key characters. These alt-keys don’t
  26327. actually produce a character themselves, they just set up an accent, so
  26328. that the following character is changed into an accented character. This
  26329. only happens if the accent is suitable for the following character.
  26330. 6.2
  26331. For example to type an ‘e’ with an acute accent (é): Whilst holding down
  26332. the Alt key, press and release <[>. Release <alt> and the press and
  26333. release <E>. Thus:-
  26334. 6.2
  26335. Alt-[  E     é
  26336. Alt-]  E     è
  26337. Alt-;  E     ë
  26338. Alt-’  E     ê
  26339. Alt-,  N   ñ
  26340. Alt-.  A     å
  26341. Alt-/  C     ç
  26342. 6.2
  26343. The only other Alt-key character missing from the previous list is Alt-
  26344. hyphen which gives character 173, which, in the Acorn fonts, looks
  26345. exactly like a normal hyphen, but is often different in fonts from other
  26346. suppliers.  Simon Moy, N.C.S.
  26347. 6.2
  26348. • MS-DOS 5, PC Emulators and the Archimedes keyboard − (This excerpt
  26349. from a reply to an Archive reader’s letter may prove useful to others.)
  26350. The cursor keys do not work correctly with the PC emulators due to a
  26351. bug. They will not work properly with either QBasic or DOS Edit. They
  26352. can be used to move around the text but, to select text, you must use
  26353. the cursor and editing keys which are mapped on the numeric keypad (as
  26354. on a normal PC AT-style keyboard). Therefore, when inside the editors,
  26355. make sure that NumLock is off and use <shift> and the following keys (on
  26356. the numeric keypad):
  26357. 6.2
  26358. 6.3
  26359. 6.2
  26360. AMOUSE.COM is fully compatible with MS-DOS 5. However, as with all PCs,
  26361. you cannot display the mouse pointer at the DOS prompt. Also, not all PC
  26362. programs support the mouse. However, if the AMOUSE command is present in
  26363. your AUTOEXEC.BAT file and the program you want to use accepts a mouse
  26364. (e.g. QBasic, EDIT and DOSSHELL), you must start the appropriate
  26365. application first and then select Connect Mouse (by pressing <menu> over
  26366. the PC emulator window) if you are running the emulator from a window in
  26367. the RISC-OS desktop. If you are using the emulator under Single Task
  26368. mode, the mouse should automatically connect itself. (If the mouse does
  26369. not connect itself automatically when running the emulator under Single
  26370. Task mode, then this is a further bug in the PC emulator.) Typing AMOUSE
  26371. at the DOS prompt or selecting Connect Mouse from the window’s menu will
  26372. not display the DOS mouse pointer, as DOS itself does not support a
  26373. mouse. If you do this, the RISC-OS pointer will disappear (because
  26374. control has passed to DOS) and you must press <menu> on the mouse to
  26375. relinquish control from the emulator back to RISC-OS.  Simon Moy, N.C.S.
  26376. 6.2
  26377. • Pound sign problems − The pound sign has always been a difficult
  26378. character to print and display on the screen. To make the pound sign
  26379. appear in the PC Emulator, press and hold <alt> and type 156 on the
  26380. numeric keypad. When you release <alt>, the pound sign will appear.
  26381. 6.2
  26382. If you are printing a file as text (i.e. from Edit or PipeDream for
  26383. instance) then the pound sign will print as a hash (#). You can reverse
  26384. this by using a hash symbol in your text in place of the pound sign,
  26385. although it is important that your printer is set up with a UK character
  26386. set − see the DIP switch settings for your specific printer. If you are
  26387. printing a file produced using bitmaps (e.g. Impression) then the pound
  26388. sign will print correctly anyway. Basically, any program which defaults
  26389. to printing on the screen using the system font will print characters as
  26390. plain text − there is a section on plain and fancy text in the RISC-OS
  26391. User Guide.
  26392. 6.2
  26393. By the way, does anybody know why you can’t access the pound sign
  26394. (either from the keyboard or <alt-156>) in a Task Window under RISC-OS
  26395. 3.0?  Simon Moy, N.C.S.
  26396. 6.2
  26397. • RISC-OS 3.1: A310 − There is a problem when fitting RISC-OS 3.1 to
  26398. A310 machines fitted with the Arcram 434 ARM3 + 4Mb upgrade from Watford
  26399. Electronics. It causes the machine to hang on power-up. Replacement PAL
  26400. chips and more information are available from Watford Electronics on
  26401. 0923−37774 (Fax: 33642).  Simon Moy, N.C.S.
  26402. 6.2
  26403. • RISC-OS 3.1: SCSI drives − There may be problems accessing the SCSI
  26404. drive using the HCCS Hard Card interface with RISC-OS 3.1. Contact HCCS
  26405. for details.  Simon Moy, N.C.S.
  26406. 6.2
  26407. • Rotated fonts and sprites using Laser Direct − With the advent of
  26408. RISC-OS 3.1, there are problems with printing rotated text and graphics
  26409. using the currently existing RISC-OS 2 printer drivers such as that
  26410. supplied with Laser Direct. To overcome the problem, transform the text
  26411. or sprite to any angle in Draw, make sure that the item is selected and
  26412. choose the Convert to Path option from the Select submenu. This will
  26413. allow rotated text or sprites to be printed correctly using the RISC-OS
  26414. 2 printer driver supplied with Laser Direct. This does not mean that it
  26415. will work with all RISC-OS 2 printer drivers − you will have to
  26416. experiment! Steve Costin, Ramsgate.
  26417. 6.2
  26418. •   TV interference − In response to Chris Bass’ enquiry in Archive 6.1
  26419. p36, here is a general procedure which covers almost all cases:
  26420. 6.2
  26421. 1. Does the computer interfere with your own TV, when it is as close/
  26422. closer to your computer than your neighbour’s TV is? (On either side of
  26423. a party wall they could be less than 1 m apart!)
  26424. 6.2
  26425. If YES, go to 2. If NO, go to 3.
  26426. 6.2
  26427. 2. Does the interference disappear when the computer is 3 m or more from
  26428. the TV?
  26429. 6.2
  26430. If YES, agree with your neighbour to move your computer and his TV so
  26431. that they are more than 3 m apart. If moving them apart is inconvenient,
  26432. you could try sticking cooking foil on to the party wall (under the wall
  26433. covering, eventually). You need a minimum of about 2 m by 2 m, and there
  26434. is usually no point in earthing it, but you could try the effect.
  26435. 6.2
  26436. In some types of building, your computer might be too close to your
  26437. neighbour’s TV aerial, in which case moving them apart is the best bet.
  26438. 6.2
  26439. If NO, the computer may be faulty. Many dealers may not be able to cope
  26440. with this type of fault, so you, or your dealer, should contact Acorn
  26441. with a FULL description of the problem.
  26442. 6.2
  26443. 3. If NO to question 1, your neighbour’s TV has either an inadequate
  26444. aerial or inadequate ‘immunity’. (This is a technical term describing
  26445. ‘resistance to electromagnetic disturbances’.) An inadequate aerial
  26446. usually also gives ‘fuzzy’ pictures and/or ghosts (outlines of images
  26447. displaced sideways). The aerial itself may be OK; the fault may be in
  26448. the downlead. They tend to fill up with water and deteriorate after a
  26449. time. A new aerial (and downlead) is quite inexpensive, even a large
  26450. one. If the aerial is not the problem, the manufacturer of the receiver
  26451. should be contacted, either directly or through the TV dealer or rental
  26452. company, regarding the probable lack of immunity of the TV. Manufac
  26453. turers (of TVs and computers) are quite concerned about this at present,
  26454. because of an EC Directive on the subject.
  26455. 6.2
  26456. 4. If all else fails, the DTI Radio Investigation Service will look at
  26457. the problem and give advice but there is a fee of about £21 involved.
  26458. The Service has much information and experience of such problems and
  26459. their cures, including private information about know immunity problems.
  26460. For Lincolnshire, the address is (or was) PO Box 2500, Nottingham NG8
  26461. 3SS. The head office is at Waterloo Bridge House, Waterloo Road, London
  26462. SE1 8UA. A book, ‘How to improve Television and Radio Reception’ is/was
  26463. available from the Service, and gives a good deal of information on
  26464. interference problems (some of it technical).  John Woodgate, Rayleigh,
  26465. Essex.  A
  26466.  
  26467.  
  26468.  
  26469. Hints, Tips and Letters
  26470. 6.2
  26471. A combined selection this month, since the hints and tips stem from
  26472. letters I have received recently.
  26473. 6.2
  26474. • Key Window / Impression problem:  I am grateful to Jack Evans of
  26475. Bristol for pointing out this problem to me, particularly since I am the
  26476. author of the program in question. Key Window (available on Shareware 47
  26477. – see review in Archive 6.1 p31) is a program which displays keystrips
  26478. in a window, and the strips update themselves as you move the caret
  26479. between tasks.
  26480. 6.2
  26481. The problem is that if you have Key Window running at the same time as
  26482. you are editing a document in Impression which is set to auto-save, the
  26483. auto-save doesn’t work. You can still save manually of course, but this
  26484. is something which is easy to forget about. The solution is easily
  26485. effected, if not very satisfactory. You have to de-select ‘Sense caret’
  26486. in Key Window’s Options menu. Unfortunately, this will prevent Key
  26487. Window from changing keystrips as you move between applications. If you
  26488. use Impression’s auto-save a lot, and want to disable Key Window’s
  26489. interference permanently, you can edit the !Run file to disable the
  26490. ‘sense caret’ option via a system variable. Full instructions for doing
  26491. this are provided in the file.
  26492. 6.2
  26493. Users may be interested to know that I have just started work on version
  26494. 2 of Key Window, and am re-writing it from scratch to make it a much
  26495. better program with enhanced facilities. I intend to approach Computer
  26496. Concepts about the problem, to see if a satisfactory solution can be
  26497. found. Other programs with auto-save facilities, such as Ovation and
  26498. Vector, do not appear to suffer from the problem.
  26499. 6.2
  26500. • Protecting Impression files:  Charles Martin from the Isle of Wight
  26501. has been having a few problems with some Impression ‘template’ files –
  26502. empty documents with standard formats. He wants to make them Delete- and
  26503. Write-protected via the filer’s Access menu but has found that setting
  26504. the files (which are, of course, in the form of application directories)
  26505. to ‘locked’ does not protect their contents. Similarly, opening the
  26506. directories and choosing ‘Select all’ does not have the desired effect.
  26507. 6.2
  26508. This situation actually applies to all applications and directories, not
  26509. just Impression files. However, under RISC-OS 3, the Access menu is
  26510. completely redesigned and works much better, so the problem only really
  26511. affects RISC-OS 2 users. The difficulty arises because of the distinc
  26512. tion that the filer makes between directories (be they normal
  26513. directories or application directories) and actual files. This is one of
  26514. those ‘features’ of RISC-OS 2 which needs a bit of care.
  26515. 6.2
  26516. Under RISC-OS 3, if you select a directory or application directory
  26517. (such as an Impression file) and set it to ‘Protected’, the filer will
  26518. protect all the files within it, no matter how many sub-directories
  26519. there are. Under RISC-OS 2, however, it will only set the status of the
  26520. directory itself. You therefore need to open the directory, select all
  26521. the files within it and set their attributes via the Access menu.
  26522. However, there is a further complication: if the selection of files
  26523. contains any directories, the process will be upset − the directories
  26524. need to be deselected first.
  26525. 6.2
  26526. Under RISC-OS 2, to protect an Impression file, you would need to open
  26527. it up, choose ‘Select all’ from the filer menu, deselect any directories
  26528. in the selection by clicking on them with <adjust>, and finally set all
  26529. the files’ attributes via the Access menu. Then repeat the process for
  26530. each of the directories which you had deselected (‘MasterChap’,
  26531. ‘Chapter1’, etc). There is simply no point in protecting the directories
  26532. themselves, since it is impossible to delete a directory which contains
  26533. locked files, and locking a directory (under RISC-OS 2) does not affect
  26534. the access status of the files within it in any case.
  26535. 6.2
  26536. All in all, it’s probably easiest to upgrade to RISC-OS 3!
  26537. 6.2
  26538. • Applause for Ovation:  A highly enthusiastic letter about Ovation has
  26539. been received from Tony Greenfield of Birmingham. He has the following
  26540. to say:
  26541. 6.2
  26542. “[Ovation] does just what I had hoped for and more. The manual is
  26543. brilliant! It is a work book on DTP, quite good enough as an introduc
  26544. tion to the subject to beginners and as an encouraging tutorial for more
  26545. experienced users. I found it much more useful than First Impression. I
  26546. have learnt much about Impression II and much about how a manual should
  26547. be presented. I wonder if the reason that there are not many hints and
  26548. tips on using Ovation [in Archive] is because the user manual is so
  26549. clear? (It may also have something to do with the relative numbers of
  26550. people using the two packages. Ed.) There are many features which I like
  26551. about the program. In fact, there is not very much missing – I wonder
  26552. if, for most people, Impression is not really required − after all, it’s
  26553. more expensive than Ovation. I’m sure that, for schools who have yet to
  26554. purchase a DTP package, Ovation would be a must better buy than
  26555. Impression, for many reasons − perhaps most of all for the ease of use,
  26556. and I guess it would be easier to learn than Impression.”
  26557. 6.2
  26558. Tony goes on to list various features which he likes in Ovation, notably
  26559. its wide range of effects such as word underline, small caps and
  26560. tracking, and its system of basing font styles on one family name, so
  26561. that changing the base family will also alter the italic and bold fonts.
  26562. 6.2
  26563. I would certainly agree with Tony’s comments about the manual, which is
  26564. indeed a very helpful document, although I think Impression is the
  26565. easier of the two to learn, as Ovation has a quite unwieldy menu
  26566. structure. Perhaps the quality of the manual really is the reason why we
  26567. haven’t received more tips on using the program from readers. Anyway,
  26568. things are set to change from this month in Archive, with the advent of
  26569. Maurice Edmundson’s dedicated Ovation column. (We also have a new DTP
  26570. editor, Ray Dawson, whose first column will appear next month.) For
  26571. further comments about Ovation, see my Ovation/Impression comparison
  26572. article which follows on page 33.  A
  26573.  
  26574. Hints and Tips
  26575. 6.3
  26576. •   A3010 joystick ports − several A3010s have been returned to Acorn with
  26577. complaints of faulty joystick ports. They are not faulty. The A3010 is
  26578. the first Archimedes to have a built-in digital (i.e. Atari-style)
  26579. joystick port and because of this, many of the games already available
  26580. do not cater for digital joysticks. This is a fairly major problem and
  26581. hopefully someone will soon produce some sort of patch (either hardware
  26582. or software) which allows digital joysticks to be used in place of the
  26583. more common proportional joysticks (such as the Voltmace Delta). Until
  26584. then, two sources of information about digital joystick interfaces are
  26585. The Leading Edge and Beebug.
  26586. 6.3
  26587. •   A4 Portable Guide − on page 31 of this guide, the pin-out diagram for
  26588. the AKF18 monitor is slightly incorrect. Pins 13 and 14 (horizontal and
  26589. vertical sync) have been reversed.
  26590. 6.3
  26591. •   Artworks & Impression dongles − There appears to be a clash between
  26592. these two dongles when using an A5000 and a JP-150: printouts appear
  26593. with spurious information across them. Computer Concepts say that the
  26594. problem only occurs between A5000s and JP-150 printers and add that they
  26595. are looking into the problem.
  26596. 6.3
  26597. •   Banner-making − I have just seen, in Archive 6.1, a review of a
  26598. program called Banner.
  26599. 6.3
  26600. If you own a printer which takes fanfold paper, there is an alternative
  26601. way for making banners. (By the way, fanfold paper does not need
  26602. sprocket holes if you are careful about the line-up and select friction
  26603. feed, so normal paper rolls can be used. For example, the Colourjet 132
  26604. users can print banners in this way.)
  26605. 6.3
  26606. The print margins on all the Acorn printer drivers are user-definable
  26607. and as long as you want to print out banners shorter in length than A0,
  26608. extending the appropriate print margin and setting Draw to A0 landscape
  26609. will normally allow satisfactory banners to be produced. (Changing the
  26610. print margins is described in the manuals; change only the height of the
  26611. page to whatever you wish and leave the width alone.) If print margins
  26612. are shown, keeping to these will ensure that none of the picture is
  26613. lost.
  26614. 6.3
  26615. The additional flexibility of Draw, especially in conjunction with the
  26616. drawfile utilities (!FontFX, !DrawBender, etc) would, in my opinion,
  26617. offset most of the ease of use of Banner, except perhaps in primary
  26618. schools.
  26619. 6.3
  26620. Note that the printer should not be set to skip perforations, or
  26621. problems will result, but I have had no difficulty in printing banners
  26622. on an Epson LX and even a Colourjet 132 in this manner.
  26623. 6.3
  26624. For those requiring longer banners, !Draw½ and, I believe, !Draw+
  26625. (Careware 13) allow an option to set the work area to the print margins,
  26626. which will then enable them to use the longer pages which the printer
  26627. driver can handle but, again, for a banner you should set the page to be
  26628. much taller than normal in the printer driver and edit the display in
  26629. landscape mode. I have used this to produce banners several metres long.
  26630. 6.3
  26631. I am sure Banner is a very useful package and I have not attempted to
  26632. use it but I would be unwilling to spend £15 when the same effect seems
  26633. to be available from the software supplied with the machine and
  26634. Careware.   Andrew Garrard, Cambridge.
  26635. 6.3
  26636. •   Banner-making again − Recently I needed to print up a large banner for
  26637. a meeting, and wondered how I should go about it. Of course, I could
  26638. always have bought ‘Banner’ for £15 but, for a once off job, I thought
  26639. this just a touch extravagant. This set me thinking... Impression can
  26640. define master pages as big as you like... hmm... This is what I did, and
  26641. it works!
  26642. 6.3
  26643. 1.   Open a new document in Impression
  26644. 6.3
  26645. 2.   Create a new Master Page (Custom Job) − Width: 1000 and Depth: 210
  26646. 6.3
  26647. 3.   Return to the document and set the Master Page in Alter Chapter
  26648. 6.3
  26649. 4.   Set the Font Size to 500
  26650. 6.3
  26651. 5.   Type in “Hello World!” or whatever
  26652. 6.3
  26653. 6.   Set the printer driver page size to − Height: 1000 and Width: 210
  26654. 6.3
  26655. 7.   Set the Impression Print Dialogue to print sideways, and fire away
  26656. 6.3
  26657. Warning − this is not ‘printer ribbon friendly’... in fact, it is
  26658. positively ‘printer ribbon hostile’!  Philip Lardner, Co. Wicklow,
  26659. Ireland.
  26660. 6.3
  26661. •   CC BJ10ex Turbo Driver − It seems that the only method of using the
  26662. Turbo Driver with the PC Emulator is to load !BJ10e and quit it again
  26663. before loading the emulator.  Chris McIntosh, Blackheath.
  26664. 6.3
  26665. •   Programming the Serial Port (Vertical Twist) graphics board − On the
  26666. monthly program disc is a series of programs which, in themselves, do
  26667. nothing much. However, they show how the 65000 colour modes can be
  26668. accessed from Basic and C.
  26669. 6.3
  26670. They mainly show how to draw lines, circles and fill shapes. Most do not
  26671. need any interaction. Fill requires five mouse selections to create to
  26672. outline − the sixth should be inside the box.
  26673. 6.3
  26674. Lines − just move the mouse and press <select> to change colour.
  26675. 6.3
  26676. 15_120ASM converts mode 15/21 sprites to mode 120. Copy the sprite image
  26677. to the floppy’s root directory before running. It’s not very fast. Jim
  26678. Bailey, Sunderland.
  26679. 6.3
  26680. •   Squirrel update − Digital Services have upgraded Squirrel from version
  26681. 1.07. Currently, Squirrel is being supplied with the original V1.07 disc
  26682. and manual and a V1.20 upgrade disc. A new manual is due out soon and
  26683. Digital Services will send all existing Squirrel owners this new copy
  26684. providing they have registered.
  26685. 6.3
  26686. •   VIDC enhancer & RISC-OS 3.10 − There can be problems using very early
  26687. Atomwide VIDC enhancer hardware with RISC-OS 3.10. It appears that if
  26688. the enhancer is software switched, RISC-OS 3.10 will automatically
  26689. switch it on which prevents the computer from starting up correctly. To
  26690. solve the problem, you have two choices: (a) at the command line, type
  26691. *FX 162,&BC,&80 and switch your machine off, then on again, to check
  26692. that the command has worked (full details are on page 14 in the RISC OS
  26693. 3.10 release note) or (b) return the enhancer hardware to Atomwide with
  26694. £5 and they will modify the hardware so that it works correctly.
  26695. 6.3
  26696. •   Vision Digitiser. As I concluded in my review of the monochrome
  26697. version of this product (Archive 5.12.42), the package is amazing value
  26698. for money. However, the supplied software is a little basic. Further
  26699. more, Robert Golightly at HCCS tells me that the software module
  26700. (promised in the !ReadMe file) to provide * commands and SWIs for users
  26701. to write their own programs has a priority below that of the 512-line
  26702. upgrade, and is not likely to appear in the near future.
  26703. 6.3
  26704. All is not lost, for the software – at least the monochrome version – is
  26705. written using Basic’s in-line assembler, and so can be modified by the
  26706. careful user.
  26707. 6.3
  26708. For example, as it stands, the !Vision application always demands 450Kb
  26709. of memory. For those with 1M machines, or those who like to multi-task
  26710. it with other memory-demanding applications, it would be useful to be
  26711. able to reduce this. Examination of the code reveals that a 320Kb screen
  26712. buffer is reserved, whatever screen mode you are using. 320Kb will be
  26713. needed for mode 21, but only 160Kb for modes 15 and 20, and 80Kb for
  26714. mode 12. If you haven’t a multi-sync monitor and want to save 160Kb of
  26715. memory when using !Vision, change the following lines of a copy of
  26716. !RUNIMAGE, having first checked that the first line of the !Run file
  26717. shows that you have Version 1.0, dated March 1992.
  26718. 6.3
  26719.   130 DIM M% 210000
  26720. 6.3
  26721.  8650 BNE mode_error
  26722. 6.3
  26723. 23260 EQUD 163840
  26724. 6.3
  26725. 23460 FN_work (163840)
  26726. 6.3
  26727. Then amend line 2 of !Run to read:
  26728. 6.3
  26729. wimpslot -min 288K -max 288K
  26730. 6.3
  26731. I’m working on other possible improvements to the software, such as mode
  26732. 67 compatibility, but it occurs to me that others might be doing the
  26733. same. If you are interested in participating in an informal user-group
  26734. for the Vision Digitiser, please send an SAE to Stuart Bell, 23 Ryecroft
  26735. Drive, Horsham, West Sussex RH12 2AW.  A
  26736. 6.3
  26737. TechSoft
  26738. 6.3
  26739. From 6.2 page 19
  26740. 6.3
  26741. TechSoft
  26742. 6.3
  26743. From 6.2 page 15
  26744. 6.3
  26745. Risc Developments (2)
  26746. 6.3
  26747. New Artwork
  26748. 6.3
  26749. Using RISC-OS 3
  26750. 6.3
  26751. Hugh Eagle
  26752. 6.3
  26753. Many thanks to all those who have sent in material about RISC-OS 3.10.
  26754. Hugh has done a lot of work for us in collating all this information, so
  26755. read it carefully, check it out on your own systems and let us know if
  26756. you find solutions to some of the problems and/or see more problems.
  26757. This kind of information is very valuable indeed in terms of helping
  26758. other people who have to go through the same learning curve as you, with
  26759. the new operating system.
  26760. 6.3
  26761. I think it would also be good to send in a few ‘I hadn’t realised that
  26762. you could... ...but it makes life much easier’comments.
  26763. 6.3
  26764. By the way, as at 28/11/92, N.C.S. actually has the £50 upgrades in
  26765. stock although A5000 owners will still have to be patient, I’m afraid.
  26766. Ed.
  26767. 6.3
  26768. (Throughout the column, references to RISC-OS 3 mean RISC-OS 3.10 unless
  26769. otherwise stated. HE)
  26770. 6.3
  26771. After ‘The Long Wait’ and an acute dose of ‘Bent Pin Anxiety’, I had, to
  26772. cap it all, ‘The Hunt For The Missing Apps 1 Disc’. After all that, I
  26773. was quite surprised to find that the machine actually worked when I
  26774. turned it on!
  26775. 6.3
  26776. Reconfiguring it so that it ran as well as it did before the upgrade,
  26777. was quite a fiddly process. The main hint I would give to anyone who
  26778. hasn’t yet done the upgrade is: watch your Fontmax settings!
  26779. 6.3
  26780. •   In the Memory section of !Configure don’t be misled by the illustra
  26781. tion on page 94 of the manual. You can not safely leave the “Font cache
  26782. limit” setting at zero and expect the operating system to default to a
  26783. sensible limit as you can with most of the other memory settings. Unless
  26784. you set “Font cache” to a reasonably large amount, you must set a larger
  26785. “Font cache limit”. (On a 4Mb machine, I have them set to 128Kb and
  26786. 512Kb respectively.)
  26787. 6.3
  26788. •   If you have a multisync monitor, read the bit on page 119 (in the
  26789. section on screen modes!) when deciding what settings to use for anti-
  26790. aliasing and cached bitmaps in the Fonts section of !Configure.
  26791. 6.3
  26792. •   Keith Lowe adds − Where the upgrade instructions tell you to hold down
  26793. the Delete key until the power-on self-test has been completed, they
  26794. mean don’t release the key until text has appeared on the screen!
  26795. Otherwise your old configuration will still be there and that can cause
  26796. no end of confusion!
  26797. 6.3
  26798. •   Ed Harris encountered problems in installing the user fit ROM carrier
  26799. board from IFEL to his A310. IFEL were very helpful in providing advice
  26800. and when Keith was still unable to track down his mistake, they sorted
  26801. it out and returned it by return with only a nominal charge to cover
  26802. their costs. Many thanks to IFEL.
  26803. 6.3
  26804. •   Mark Lambert reports problems trying to install RISC-OS 3 in an A310
  26805. fitted with a Watford 4Mb RAM upgrade (the second edition with a
  26806. vertical daughterboard holding the processor). Watford have told him
  26807. that a simple wire link is required on the RAM board but, as yet, they
  26808. have not told him the exact details. Does anyone happen to know the
  26809. details of the link required?
  26810. 6.3
  26811. •   Steve Hutchinson writes: I was assured that it was quite simple to do
  26812. the necessary hardware upgrade to my old A440. In the event, I managed
  26813. it without hiccup but it was not quite so simple. I had to remove the
  26814. main circuit board from the case − which means unplugging loads of
  26815. things in my machine with all its upgrades. If you haven’t reasonable
  26816. electronic experience, think twice!
  26817. 6.3
  26818. And is the upgrade worth it? For 1Mb or floppy disc only users, the
  26819. answer must surely be yes. It must be a godsend to have the standard
  26820. applications, plus fonts, plus modules, all in ROM. For hard disc owners
  26821. .... well, what do you think? Some readers have no doubts.
  26822. 6.3
  26823. Ed Harris, for instance, writes: All in all, I have found RISC-OS 3.1 to
  26824. be a great improvement on an already excellent operating system (RISC-OS
  26825. 2) and well worth the cost of the upgrade. However, I wonder whether
  26826. others share my disappointment that the improvements were not more
  26827. dramatic? Perhaps now is the time for us to begin to compile a Wish List
  26828. of things we would like to see in RISC-OS 4.
  26829. 6.3
  26830. Why not send your thoughts either to Archive or to me at the address at
  26831. the end of this column?
  26832. 6.3
  26833. Most programs work well in RISC-OS 3
  26834. 6.3
  26835. Robert Macmillan of Colton Software has written to point out (further to
  26836. Gerald Fitton’s comments in the Pipeline Column of Archive 6.1) that not
  26837. only do all versions of Pipedream from 3.10 onwards work in RISC-OS 3,
  26838. they all work better with RISC-OS 3. This is because RISC-OS 3 has the
  26839. latest versions of system software built in and these perform better
  26840. than the old versions supplied with RISC-OS 2. In particular, the font
  26841. manager is much, much faster and the benefits of having the fonts built
  26842. in make it possible for floppy disc users to make good use of fonts
  26843. without inordinate disc swapping.
  26844. 6.3
  26845. Robert suggests that Archive should publish a table showing which of the
  26846. most popular software packages work, and which don’t work or need
  26847. upgrading. Judging by the number of needless phone calls he has been
  26848. receiving, this would be of great benefit to users considering the
  26849. upgrade to RISC-OS 3.
  26850. 6.3
  26851. I think the drawback with this idea is that although most people will
  26852. report that most programs work perfectly well (and the list could
  26853. potentially fill much of the magazine) some programs that do work well
  26854. for most people seem to cause problems for some others.
  26855. 6.3
  26856. However, I do agree that it is important to emphasise that most programs
  26857. do work and so, to set the ball rolling, I confirm that, from my limited
  26858. experience and that of my friends, the following generally seem to work
  26859. well:
  26860. 6.3
  26861.    all the standard Acorn applications
  26862.    Impression 2.17 (but see below)
  26863.    Poster 1.21
  26864.    Artworks (all versions)
  26865.    Vector
  26866.    TWO
  26867.    Squirrel
  26868.    Pacmania
  26869.    E-Type
  26870.    Twin World
  26871.    Lemmings
  26872.    Gods
  26873. 6.3
  26874. Programs that need minor modifications
  26875. 6.3
  26876. •   Sigmasheet (Minerva) must have FPEmulator in the same directory, even
  26877. though that module is in ROM. (John Waddell)
  26878. 6.3
  26879. •   First Word Plus release 1.1 − As my current word processor is First
  26880. Word Plus release 1, I was worried by the assertion in the release notes
  26881. that this was unuseable under RISC-OS 3.1. This happily proved not to be
  26882. the case. If colour 14 within the WIMP palette is redefined, the menus
  26883. become legible. I have created an obey file to invoke 1WP (on the
  26884. monthly program disc) which loads a modified palette on entry and
  26885. restores the default palette on exit. Using this, I have experienced no
  26886. problems running 1WP. (Ed Harris)
  26887. 6.3
  26888. •   DiscTree does not work correctly under RISC-OS 3. Oak Solutions are
  26889. working on the problem.
  26890. 6.3
  26891. •   InterWord – My copy of InterWord has its own directory in the hard
  26892. disc root directory. It runs in 65Tube, which isn’t where it used to be
  26893. under RISC-OS 2, and appears under a different name. To get InterWord
  26894. going again, copy the new App2.!65Tube.!RunImage to the InterWord
  26895. directory and rename it as 65Tube; it should now be sitting alongside
  26896. !IWord in that directory. In the I/WORD.!IWORD.!RUN file, insert the
  26897. following line after Set Interword$Dir <Obey$Dir>:
  26898. 6.3
  26899. RMLoad ADFS::HD4.$.IWORD.65Tube
  26900. 6.3
  26901. (where HD4 is the name of the hard disc). Double click on !IWORD in the
  26902. usual way to start it.
  26903. 6.3
  26904. A similar method should apply to single floppy machines by substituting
  26905. the appropriate floppy name for that of the hard disc above. (Ken Cowap)
  26906. 6.3
  26907. •   Holed Out – I have a boot file on the hard disc which sets up the
  26908. machine with some applications on the iconbar and some more on the
  26909. pinboard. The golf game “Holed Out” finds this environment disagreeable
  26910. and won’t start. The following gets it going:
  26911. 6.3
  26912. *CONFIGURE DRIVE 0
  26913. 6.3
  26914. *MOUNT :0
  26915. 6.3
  26916.    <shift-break> (machine re-boots to bare-bones iconbar)
  26917. 6.3
  26918.    Click Drive 0 icon to get “Holed Out” filer
  26919. 6.3
  26920.    Double click !Boot
  26921. 6.3
  26922. Terminate the game with:
  26923. 6.3
  26924.    Shift/Break
  26925. 6.3
  26926. *CONFIGURE DRIVE 4
  26927. 6.3
  26928. *MOUNT:4
  26929. 6.3
  26930.    <ctrl-break> (machine re-boots to populated iconbar, etc) (Ken Cowap)
  26931. 6.3
  26932. •   Chocks Away – The flight simulator Chocks Away isn’t quite so fussy
  26933. about a populated iconbar and will generally start normally. However, if
  26934. it does object, it may help to try a <ctrl-break> followed immediately
  26935. by <escape>, which re-boots to an unpopulated iconbar, then double click
  26936. on !Chocks. (Ken Cowap)
  26937. 6.3
  26938. Other program problems
  26939. 6.3
  26940. Mike Williams has supplied a list of programs that he has found don’t
  26941. work under RISC-OS 3.1:
  26942. 6.3
  26943.    Ground Control Teletext Adaptor (At the A.U.      Show, Ground Control
  26944. said they weren’t      aware of any problems. HE.)
  26945. 6.3
  26946.    Clares’ Arcade Games
  26947.    Quazer
  26948.    StarTrader
  26949.    Arcendium
  26950.    Corruption
  26951.    Terramex
  26952.    Boogie Buggy
  26953. 6.3
  26954. Ed Harris has found several public domain applications that have failed
  26955. to run:
  26956. 6.3
  26957.    Mandelplot (garbage on screen − machine      locks)
  26958.    ChartDraw (“illegal window handle” error)
  26959.    Hyper (“illegal window handle” error)
  26960. 6.3
  26961. •   Computer Concepts admit that ShowPage does not work with RISC-OS 3 and
  26962. say that they have no plans to get it working with RISC-OS 3. There just
  26963. is not the demand for this product to make it worthwhile doing the
  26964. upgrade which is more like a complete re-write for the new operating
  26965. system.
  26966. 6.3
  26967. Denis Fox reports problems with:
  26968. 6.3
  26969. •   Impression (2.17) and LaserDirect (2.05) work much more slowly, even
  26970. with Fontsize set to 256Kb and Fontmax to 512Kb. There are regular poor
  26971. printouts, sometimes with patterned effects in what should be black
  26972. areas, hang ups when transferring lots of text between documents and
  26973. continual error messages when printing. (I have a similar setup but have
  26974. not noticed any deterioration in performance. HE.)
  26975. 6.3
  26976. To help the speed, I suggest you try NOT using the ROM fonts − then you
  26977. can have Quick Text switched on. To do this, add a FontRemove
  26978. Resources:$.Fonts. in the !Fonts.!Boot file before the FontInstall
  26979. <Obey$Dir>. command.
  26980. 6.3
  26981. I have once had the patterned effect in black areas but quitting and
  26982. restarting the printer driver cleared it. Ed
  26983. 6.3
  26984. •   Multistore V11 not printing with a Star LC24-200. (At the AU Show,
  26985. Minerva said there may be problems with earlier versions and that users
  26986. experiencing such difficulties should contact them quoting their version
  26987. number. HE.)
  26988. 6.3
  26989. •   Scanlight Plus 256 not working at all. (There are no known problems.
  26990. Are you sure you have a power supply connected to the board? You do need
  26991. the p.s.u. connected even on the A5000. Ed.)
  26992. 6.3
  26993. •   A number of people have had problems (mainly “illegal window handle”
  26994. errors) with versions up to 1.07 of my PD application PickAPic. I found
  26995. that there was an error in the code that only occasionally caused
  26996. problems in RISC-OS 2, but caused the program to crash quite often in
  26997. RISC-OS 3, presumably because of a change in the way the window manager
  26998. numbers its windows. Anyone who wants an upgrade to the latest version
  26999. please write to me at the address at the bottom of this column. (Hugh
  27000. Eagle)
  27001. 6.3
  27002. •   Droom – I can’t get Droom to work. It reports “Not enough system
  27003. sprite memory” whether I use Memalloc and the *Spritesize command (this
  27004. used to work in RISC-OS 2), or the new *ChangeDynamicArea command, or
  27005. whether I set the System sprites slider in the Task Manager window.
  27006. (Hugh Eagle)
  27007. 6.3
  27008. •   Compression − Computer Concepts have informed me that the release note
  27009. for version 3.10 is slightly too pessimistic when it claims that
  27010. Compression (up to version 1.10) does not work on RISC_OS 3.10. What
  27011. apparently happens is that sometimes when you compress a directory with
  27012. several files, the last file, instead of being processed, produces an
  27013. error message. It can then be compressed singly. (In the first two weeks
  27014. of working with the new OS, I have had no trouble with Compression, so
  27015. the problem appears to be marginal. HE) (Jochen Konietzko)
  27016. 6.3
  27017. •   Impression and the Pinboard − Can anyone tell me why the Pinboard has
  27018. such problems with Impression documents?
  27019. 6.3
  27020. When I drag a compressed document onto the desktop, the next reset will
  27021. produce an error message “Sprite does not exist”. Without Compression,
  27022. the document does appear on the desktop but the Impression icon is
  27023. replaced by the standard application icon. (Jochen Konietzko) (I seem to
  27024. have no difficulty with Impression icons on the Pinboard in my
  27025. Compression-less setup. HE)
  27026. 6.3
  27027. •   PC Emulator (version 1.6) – I applied the patch to my copy of the PC
  27028. Emulator (Version 1.6) and changed the filetype of the DOS partitions to
  27029. DOSDisc as recommended in the release notes. I then found that the
  27030. machine locked whenever I ran the emulator, even after a <ctrl-break>.
  27031. Things worked perfectly, however, after the machine had been powered off
  27032. and restarted. (Ed Harris)
  27033. 6.3
  27034. •   Trouble with !FontFX − It has already been documented, at least twice,
  27035. that !FontFX will not run under RISC-OS 3 and the suggested “fix” is to
  27036. reset Font$Path using *SetMacro. Having done this, I still can’t get it
  27037. to use the Trinity and Homerton fonts supplied in ROM. To get round the
  27038. problem, I have renamed the original RISC-OS 2 versions OldTrinity and
  27039. OldHomertn and installed them in my !Fonts directory on disc. Now
  27040. choosing these from the fonts list in !FontFX works beautifully. So far
  27041. there have been no side effects!
  27042. 6.3
  27043. It occurs to me that the problem may be that !FontFX is looking for
  27044. files called IntMetric and Outlines (there are lots of references to
  27045. these names in the !RunImage) whereas the files in ResourcesFS are
  27046. stored as IntMetric() and Outlines(). The real answer would be for the
  27047. program to be amended to accept either version of the filenames. I shall
  27048. speak to DataStore to find out if they intend to make the necessary
  27049. alterations. (Tom Harkness)
  27050. 6.3
  27051. The release notes say that FontFX must be more recent than 4.31 to work.
  27052. My version, 4.08, works fine so long as you don’t use ROM fonts. If you
  27053. do try to, it reports ‘Can’t find outlines’ and promptly exits from the
  27054. iconbar! All other fonts seem fine, even from multiple directories.
  27055. (Steve Hutchinson)
  27056. 6.3
  27057. •   Ovation – Ovation meets a problem or two with RISC-OS 3 despite its
  27058. recent update (version 1.35S). If text is indented (e.g. at the start of
  27059. a paragraph) and is also justified, the correct format is presented on
  27060. screen but when printed, the indented line projects to the right beyond
  27061. the text frame. It is understood that Risc Developments are working on
  27062. this. Also, if Ovation encounters a faulty outline font (e.g. containing
  27063. a zero-width character, not uncommon in some PD fonts) it puts out an
  27064. incorrect error message saying that the font cache is full. This bug is
  27065. more likely to be purely Ovation’s rather than in conjunction with RISC-
  27066. OS 3, but hasn’t been resolved as yet (except of course by ensuring that
  27067. outline fonts are fault-free). (Ken Cowap)
  27068. 6.3
  27069. •   ArcDFS – Since fitting the RISC-OS 3 upgrade, ArcDFS no longer works
  27070. correctly and consistently comes up with error messages. This causes me
  27071. great problems since, throughout our group of companies, we possess some
  27072. 50+ Acorn BBC units ranging from the old BBC Model B’s (yes, they’re
  27073. still going strong after eight years of service) through to Master
  27074. 128’s.
  27075. 6.3
  27076. We are only just moving on to Archimedes and to maintain our wealth of
  27077. information accumulated on our Beebs, I am transferring files from DFS
  27078. to ADFS via a set of external 5¼“ disc drives I have had connected to my
  27079. A3000. This has worked perfectly in the past with complete surfaces of
  27080. DFS discs being transferred to ADFS in seconds. Without ArcDFS, I am
  27081. left with only one solution − to *MOVE individual DFS files to 640Kb
  27082. ADFS discs using a Master Series Computer and then transferring these
  27083. 640Kb discs to the Archimedes. Clearly, this is a retrograde step after
  27084. the convenience of ArcDFS.
  27085. 6.3
  27086. I have been in contact with Dabs Press and, although they are aware of
  27087. the problem, they could not tell me whether or not they were going to
  27088. make the necessary modifications to their software! I sincerely hope
  27089. they receive a large enough response from their users to persuade them
  27090. to produce an upgrade for this product. (S. J. Furnell)
  27091. 6.3
  27092. •   !Alarm – A couple of tricky little bugs exist in the new Alarm
  27093. application. I’ve already reported these to Risc User and trust they
  27094. will advise Acorn in turn. If the Repeating Alarm facility is used to
  27095. operate, say, every first Monday of every month, it malfunctions when
  27096. the next month comes up to December. It advances a year instead of a
  27097. month, going from November 1992 to December 1993.
  27098. 6.3
  27099. Perhaps less important, but still a nuisance if you want to use it, is
  27100. the bug in the automatic BST to GMT facility. It refuses to accept
  27101. entries for two different years such as were needed at the recent change
  27102. on 25th October. Before that date, it should have been in order to enter
  27103. 6.3
  27104.    BST starts on Sunday 28th March 1993 at 01:00
  27105. 6.3
  27106.    BST ends on Sunday 25th October 1992 at 01:00
  27107. 6.3
  27108. but Alarm invalidates such an entry by altering the “starts” date to be
  27109. earlier than the “ends” date. If one capitulates and enters the two real
  27110. changeover dates for 1992, (hoping that Alarm will calculate forward
  27111. into 1993) Alarm does indeed respond with a date in 1993 but only about
  27112. 11 months ahead, on 1st March 1993. There is a fundamental difficulty
  27113. for the programmer here. The changeover date doesn’t, as far as I know,
  27114. follow a properly defined rule and tends to be arbitrary. I suspect that
  27115. the programmer intended to issue a reminder to the operator 11 months
  27116. after the last change so that the true date, known by then, could be
  27117. entered. However, the algorithm obviously needs re-examination. (Ken
  27118. Cowap)
  27119. 6.3
  27120. Can readers (or the manufacturers) offer any advice on how to overcome
  27121. problems with these programs (or any others that have proved
  27122. troublesome)?
  27123. 6.3
  27124. Hardware problems
  27125. 6.3
  27126. •   Oak SCSI “Free Space” display – My Oak SCSI hard disc won’t use the
  27127. new ‘Free Space’ window but uses the old RISC-OS 2 ‘stop-everything-and
  27128. press-space’ window. The Release notes suggest that SCSIFiler will fix
  27129. this for the Acorn SCSI card, but it doesn’t appear to for my Oak
  27130. (v.1.16). Any thoughts? (Steve Hutchinson) (The solution to this was
  27131. explained in Archive 5.5 p40. Ed.)
  27132. 6.3
  27133. •   Digitisers, SCSI and the RS232 port – I managed to get RISC-OS 3
  27134. fitted to my faithful A440 only to discover that my Technomatic
  27135. (Brainsoft) Multipod Professional digitiser not only does not work with
  27136. RISC-OS 3.10 but the computer will not work with the podule fitted.
  27137. Richard Brain says that he was not aware of a problem and there are
  27138. currently no plans for an upgrade, but he will have a look when he gets
  27139. time to see if an upgrade is possible. In the meantime, I have no video
  27140. digitiser, no stereo digitiser and no extra RS232 ports.
  27141. 6.3
  27142. I mentioned the problem to Malcolm Banthorpe and he tells me that his
  27143. Pineapple digitiser is now “unwell” with RISC-OS 3.10. I wonder whether
  27144. there are some differences in the way that podules download their ROM
  27145. modules and initialise under RISC-OS 3.10?
  27146. 6.3
  27147. I also hear rumours that people are experiencing interrupt problems with
  27148. SCSI interfaces causing data loss on the RS232 port (interrupts not
  27149. returning quickly enough to avoid loss of incoming data on the port).
  27150. Apparently, uncached Morley cards may be particularly prone but I have
  27151. no first hand experience. It certainly fits in with Malcolm Banthorpe’s
  27152. experience on his digitiser which seems to be suffering from an overdose
  27153. of interrupts. (Tim Nicholson)
  27154. 6.3
  27155. Laser Direct RISC-OS 3 printer driver?
  27156. 6.3
  27157. It seems barely credible, but a whole year after RISC-OS 3 was first
  27158. released, the Rolls Royce of Archimedes printers still lacks a RISC-OS 3
  27159. printer driver. For many purposes this doesn’t matter, but rotated fonts
  27160. seem a bit pointless if you can’t print them out, and users with more
  27161. than one printer would like to be able to access their LD using the
  27162. Print Manager.
  27163. 6.3
  27164. Readers have been getting contradictory explanations from Computer
  27165. Concepts: one was told that they’ve been too busy writing Artworks,
  27166. while another was told that Acorn haven’t given them a printer driver
  27167. specification yet! (There’s an element of truth in both. Let’s just say
  27168. that it is a non-trivial task to write a printer driver to work with
  27169. Acorn’s Print Manager. Ed.)
  27170. 6.3
  27171. Other printer problems
  27172. 6.3
  27173. •   Epson MX100-III – My printer is an ageing Epson MX100-III. Using the
  27174. standard settings provided by the Acorn printer driver, I find thin
  27175. lines can disappear. e.g. the staves in a Rhapsody score. Using the
  27176. highest resolution setting (120 x 216 dpi dithered) produces an
  27177. excellent standard of output but 1.5 to 2 times slower than the RISC-OS
  27178. 2 driver (at a resolution of 120 × 144 dpi). (Ed Harris)
  27179. 6.3
  27180. •   Print buffering – I have an Archimedes 420/1 expanded to 4Mb memory,
  27181. with twin Cumana 5¼“ disc drives and recently equipped with ARM3 and
  27182. RISC-OS 3.1. Ever since I installed RISC-OS 3.1, I have had a problem
  27183. with printing. I use Impression most of the time but the same problem
  27184. arises with Draw, Acorn DTP, DrawPlus, etc, etc. I shall put the problem
  27185. in the form of a question: What is the point of a printer buffer that
  27186. does not release control of the machine back to the user until the print
  27187. job is finished?
  27188. 6.3
  27189. I wrote to Acorn as follows: Whatever setting I use for PrinterBuffer
  27190. Size, it just does not seem to make any difference. I have 4Mb of memory
  27191. and use Impression a great deal. Sometimes I set the PrinterBufferSize
  27192. as high as 512Kb but the computer does not return control to the desktop
  27193. until the document is completely printed. Under RISC-OS 2, I used a
  27194. printer buffer program and found that I was able to work on a new
  27195. document within a minute or two of sending the previous one to the
  27196. printer provided the buffer was set high enough to accommodate all of
  27197. the data being sent to the printer. Now the machine is always tied up
  27198. until the printing is complete. How does one get the printer buffer to
  27199. work? I use *Configure PrinterBufferSize to set the size of the buffer.
  27200. Is there another command that I can use to make it operational and is it
  27201. possible to turn it off (*Configure PrinterBufferSize 0Kb sets it to the
  27202. default of 1Kb) and use one of the many printer buffer programs that are
  27203. available?
  27204. 6.3
  27205. Acorn (Peter Dunn) replied: “Although the printer buffer does work in
  27206. that data is passed into the buffer, control is not released back to the
  27207. user until the print job is finished.”
  27208. 6.3
  27209. I have tried RMKilling the BufferManager but that stops all data being
  27210. sent to the printer.
  27211. 6.3
  27212. I have devised a work-around but it is a little long-winded:
  27213. 6.3
  27214. 1. Have two versions of the chosen printer driver on the iconbar and
  27215. make them active.
  27216. 6.3
  27217. 2. Set one (F) to send the data for the printer to a file on the hard
  27218. disc and set the other (P) to send the data to the parallel or serial
  27219. printer.
  27220. 6.3
  27221. 3. Select (F) by clicking on it and ‘print’ the document. A file called
  27222. Printout will appear on the hard disc.
  27223. 6.3
  27224. 4. Change the name of the file called Printout to, say, Printoutx.
  27225. 6.3
  27226. 5. Select (P) by clicking on it and drag Printoutx onto the Printer icon
  27227. that is yellow.
  27228. 6.3
  27229. The file will now print in the background and control is instantly
  27230. returned to the user. Step 4 is not strictly necessary but is useful if
  27231. you are printing longish documents and wish to, as it were, stack them
  27232. ready for sending to the printer. If one does not change the name to
  27233. something unique, there is a danger of overprinting one file with
  27234. another. Instead of the hard disc one may, of course, use a floppy or
  27235. RAMFS.
  27236. 6.3
  27237. This is quite a laborious work-around when one has a printer buffer
  27238. built in (so one would think) to RISC-OS 3.1. A better arrangement must
  27239. be possible and so I should be grateful for any hints or tips the
  27240. readers can give. (M. P. Ireland)
  27241. 6.3
  27242. •   Epson FX-105 – The driver for the Epson FX-85 does not work with the
  27243. Epson FX-105 even though the printer manual suggests that they are
  27244. virtually identical apart from the carriage width. The printout is
  27245. always aligned along the left hand side even when it is supposed to be
  27246. centered, etc. Furthermore, large letters, being sent in several
  27247. separate lines, are often incorrectly aligned from top to bottom. When I
  27248. raised this in my letter to Acorn, they replied as follows:
  27249. 6.3
  27250. “The Epson FX-105 does not support the ESC $ (remove leading white
  27251. space) options supported by the FX-85 but does however support NLQ text
  27252. printing. The decision by Epson not to support ESC $ in its newer
  27253. printers has only recently come to light when testing the Epson LX-100.
  27254. We have written a driver for the LX-100 which I am sure you will find
  27255. works correctly with your printer.”
  27256. 6.3
  27257. A copy was sent to me and I can confirm that it does indeed work. (M. P.
  27258. Ireland)
  27259. 6.3
  27260. •   Bug in !Printers − If you configure two printers of the same type
  27261. (e.g. a 300dpi HPLJ-2 and a 150dpi HPLJ-2) then delete the first one,
  27262. !Printers crashes with an address error. (Mike Williams)
  27263. 6.3
  27264. •   LaserJetII printer driver and Qume Crystalprint Series II – My problem
  27265. concerns the LaserJet II printer driver. Quite simply, I always get an
  27266. extra blank sheet for every page printed. Also stray characters appear
  27267. in the left margin. The Qume CrystalPrint Series II printer is very
  27268. similar to that used initially by Computer Concepts for their Laser
  27269. Direct series, but mine isn’t a Laser Direct model.
  27270. 6.3
  27271. In the early days of RISC-OS 2, I vaguely remember I had a similar
  27272. problem that was solved only when Acorn (fairly quickly) brought out
  27273. another printer driver.
  27274. 6.3
  27275. In my efforts to solve the problem, I’ve tried lots of things – like
  27276. changing margins, etc, etc. I’ve had long discussions with Gerald
  27277. Fitton, too. From him, I know that others have plenty of problems,
  27278. though perhaps not quite like mine. The silly thing is that all was OK
  27279. with the RISC-OS 2 driver but, despite the impression given in Risc
  27280. User, neither of us thinks that RISC-OS 2 drivers can be used with RISC-
  27281. OS 3. Is this correct, I wonder? If they can be used, that would be a
  27282. good temporary solution. (John Jordan)
  27283. 6.3
  27284. •   Getting the page length right – After quite a number of abortive
  27285. attempts to set the page length for 12 inch fanfold paper, I finally
  27286. found out that any changes I make become effective (at least on my
  27287. combination of machines) only after I have saved all changes, quit and
  27288. then reloaded the printer driver. (By the way, the correct setting for
  27289. my Fujitsu DL1100 printer, using the Epson LQ860 emulation is, for some
  27290. inscrutable reason, 12.309 inches, 72 lines). (Jochen Konietzko)
  27291. 6.3
  27292. •   Panasonic KX-P1124 – Probably my most difficult problem was with the
  27293. printer drivers. The old RISC-OS 2 drivers just have to be abandoned −
  27294. they merely generate an error message. My printer happens to be a
  27295. Panasonic KX-P1124 (24-pin dot matrix, monochrome) but Acorn haven’t
  27296. seen fit to include any Panasonic printers at all. Though they blandly
  27297. say that one of the others will probably be near enough, in fact, it
  27298. requires a considerable amount of research to be confident that the
  27299. range of control codes is (a) sufficient to fully exploit the machine’s
  27300. capabilities and (b) doesn’t contain any alien codes to cause unwanted
  27301. results. At the end of the day (or several!) I reduced the probables to
  27302. two, the Epson LQ860 and the NEC P6+ (despite the fact that both
  27303. machines are colour printers). I had misgivings about the NEC which
  27304. includes, in its control code repertoire, some which started with 28
  27305. instead of the old familiar 27 (Escape). The matter was finally clinched
  27306. when I was able to question an Acorn representative at the Acorn User
  27307. Show. He told me that quite definitely I should use the Epson LQ860. So
  27308. this I do, and without any problems so far. I haven’t even edited out
  27309. the control codes for the colours − the driver is used, unmodified. (Ken
  27310. Cowap)
  27311. 6.3
  27312. Where are the hare and the tortoise?
  27313. 6.3
  27314. Can I get the hare and tortoise icons that came with my ARM3 back on the
  27315. iconbar? Or do I have to tell people that if they want E-Type to go at a
  27316. playable pace they have to press <F12> then type “Cache off” then press
  27317. <return> twice before running it?! (I just use
  27318. 6.3
  27319. RMEnsure Arm3Icon 0.9 Run scsi::4 .$.<leafname>.!Arm3
  27320. 6.3
  27321.  in my !boot file and... hare presto! Ed.)
  27322. 6.3
  27323. Programmers’ Reference Manual
  27324. 6.3
  27325. At the Acorn User Show, a “beta” copy of the new PRM was on sale in
  27326. photocopy form for £120. The final version will apparently be available
  27327. “in the first quarter” of 1993. It is about 50% bigger than the RISC-OS
  27328. 2 manual and will fill six volumes. From my brief inspection, it looks
  27329. as if it contains quite a lot more explanatory material than its
  27330. predecessor. I was told that neither the price of the final version nor
  27331. details of the trade-in arrangements (if any!) have yet been fixed.
  27332. 6.3
  27333. Various hints and tips:
  27334. 6.3
  27335. •   Problem with Impression dongle − You can’t write to a printer when the
  27336. Impression dongle is fitted unless you have run the Impression appli
  27337. cation first. (Mike Williams)
  27338. 6.3
  27339. •   Summer time blues − Some C programs (e.g. PVray) get the time wildly
  27340. wrong when *BST is configured. (Mike Williams)
  27341. 6.3
  27342. •   Bug in !SciCalc − It gives wildly inaccurate results to the <±>
  27343. function for some values, e.g. if you enter “1<Exp>56” then press <1/x>
  27344. to give “10E−57” then press <±> you get the surprising result: “10E−58”.
  27345. If you press <±> again, you get “10E−41”. (Mike Williams)
  27346. 6.3
  27347. •   Where did this file come from? − There are quite a few ways in which
  27348. <adjust> clicking can be very helpful. I’m sure you all know that
  27349. <adjust> double-clicking a directory opens it and closes the parent and
  27350. that using <adjust> to close the directory opens up the parent. You may
  27351. even know that clicking the close icon with <adjust> while holding down
  27352. <shift> actually opens the parent without closing the directory. What
  27353. you may not have noticed is that you can do the same with (some)
  27354. applications. With most applications, it seems, <adjust> double-clicking
  27355. a file loads the file and closes the directory from which it came. (I
  27356. think this is a function of the Filer and is therefore true for all
  27357. applications and files. HE.) Then, if you click in the close box with
  27358. <adjust>, holding <shift> at the same time, the directory from which the
  27359. file came appears on screen without the file disappearing from view.
  27360. With Impression, however, there is no need to hold <shift> as well −
  27361. just using <adjust> on the close box brings up the directory viewer in
  27362. which the file is saved.
  27363. 6.3
  27364. Oh, and I’ve only just discovered that if you draw a window’s scroll bar
  27365. with <adjust>, you can move about in both x and y directions! (Paul
  27366. Beverley)
  27367. 6.3
  27368. •   Rubber-banding − Those who have gone straight to RISC-OS 3 without
  27369. reading the manual (like Ed!) may not have noticed that you can use
  27370. rubber-banding to select a group of files. So instead of <adjust>
  27371. clicking every individual file you want to select, you can click
  27372. <select> in the space between two file icons and, as you drag, a red
  27373. bounding box appears which you can release when it is over the files you
  27374. want. Using <adjust> instead of <select> simply adds files to those
  27375. already selected but note that if you go over a file that is already
  27376. selected, it is then de-selected. (Paul Beverley)
  27377. 6.3
  27378. •   SerialDeviceDriver module − On an A5000, never unplug the module
  27379. called “SerialDevice Driver”, as the following strange things will
  27380. happen. After a power off/on the machine will boot up but, during
  27381. booting, an error message “Error from Task Manager” will appear and
  27382. there is only a “Cancel” button to click on. Then the boot up is
  27383. finished correctly but no Taskmanager is present! It will only reappear
  27384. if you double-click on any file with the new Desktop filetype (&FEA),
  27385. even if this is 0 bytes long! In addition, the Taskmanager will not
  27386. function correctly in all cases: try to get an “!Edit Task Window” now.
  27387. Bug or not? (Carsten Bussman)
  27388. 6.3
  27389. •   Double-clicking into Basic − On my first machine (which was killed by
  27390. my dealer while trying to fit a SCSI hard drive) I was able to enter BBC
  27391. Basic V directly by double-clicking into the system’s start-up message
  27392. window (“RISC-OS ... initialising”). This does not work with my current
  27393. machine (Serial no. 1009939); I don’t know why. This was a nice feature
  27394. which I’m missing now, so why isn’t it implemented in all RISC-OS 3
  27395. ROMs? (Carsten Bussman)
  27396. 6.3
  27397. •   Inserting path names into !Edit − Try dragging any file or directory
  27398. into an !Edit window while pressing the Shift key. This will give the
  27399. file’s pathname. (Carsten Bussman)
  27400. 6.3
  27401. •   “Menu Area Full” error in FormEd – Captain K. J. Tompkins reports the
  27402. error “Menu Area Full (Internal code 6560,1)” from his version of
  27403. !FormEd. This is probably because he has one of the earlier versions of
  27404. this program which only allows limited space for building its menus and
  27405. is defeated if there are too many fonts installed. If so, it is fairly
  27406. easy to cure: in the Basic program called !RunImage inside the !FormEd
  27407. directory there is a line that reads something like:
  27408. 6.3
  27409. DIM menufree% &1800: menuend% = menufree%+&1800
  27410. 6.3
  27411. (this is at line 790 in the version I’m now looking at). If each of the
  27412. two &1800’s is replaced by &2000, so that the line reads:
  27413. 6.3
  27414. DIM menufree% &2000: menuend% = menufree%+&2000
  27415. 6.3
  27416.  the program should work.
  27417. 6.3
  27418. (Note: this hint does not apply to all versions of FormEd) (Hugh Eagle)
  27419. 6.3
  27420. •   Filer_Run syntax − it seems that the command
  27421. 6.3
  27422. *Filer_Run <App$Dir>
  27423. 6.3
  27424. (where App$Dir is a system variable set to the name of an application)
  27425. doesn’t run the application as you might expect. What it does is to open
  27426. a filer window on the application’s directory with “<App$Dir>” (not the
  27427. actual pathname) in the title bar.
  27428. 6.3
  27429. The following syntax, however, does seem to work:
  27430. 6.3
  27431. *Set Alias$FR Filer_Run <App$Dir>
  27432. 6.3
  27433. *FR
  27434. 6.3
  27435. *UnSet Alias$FR
  27436. 6.3
  27437. (this is equivalent to the old trick that used to be needed in RISC-OS 2
  27438. to open a directory viewer with *Filer_OpenDir). (Hugh Eagle)
  27439. 6.3
  27440. •   *FontRemove syntax − The FontRemove star command seems to be very
  27441. fussy. You have to tell it the name of the directory that you want to
  27442. remove in exactly the form in which it is included in the Font$Path
  27443. system variable. For instance, if you want to remove
  27444. RAM::RamDisc0.$.!Fonts. from Font$Path you must type
  27445. 6.3
  27446. *FontRemove RAM::RamDisc0.$. !Fonts.
  27447. 6.3
  27448. including both the disc name (RamDisc0) and the full stop at the end.
  27449. (Robert Chrismas has sent in a handy application called !FontsCut which
  27450. lists the directories currently included in Font$Path with numbers
  27451. beside them and all you have to do is type in the number corresponding
  27452. to the directory you want to remove. This is included on the monthly
  27453. program disc.) (Hugh Eagle)
  27454. 6.3
  27455. •   Configuring Shift Caps − In the Caps lock section of the Keyboard
  27456. window of !Configure, the effects of “Caps lock on” and “Shift caps”
  27457. seem to be reversed. In other words, selecting “Caps lock on” means that
  27458. holding down <shift> reverts to lower case whereas selecting “Shift
  27459. caps” means that you get upper case regardless of whether <shift> is
  27460. held down or not. (Hugh Eagle)
  27461. 6.3
  27462. •   Mouse button codes – If you enter and run the following simple Basic
  27463. program:
  27464. 6.3
  27465. REPEAT
  27466.   MOUSE X,Y,B
  27467.   PRINT TAB(10,10)B
  27468. UNTIL FALSE
  27469. 6.3
  27470. then watch what number is displayed on the screen as you press the
  27471. various mouse buttons you will see:
  27472. 6.3
  27473. no button   0
  27474. 6.3
  27475. Select      4
  27476. 6.3
  27477. Menu        2 for an instant, followed by 0
  27478. 6.3
  27479. Adjust      1
  27480. 6.3
  27481. The behaviour of the menu button has changed from RISC-OS 2, I think.
  27482. Those programs that are interested only in detecting whether the button
  27483. has been clicked won’t be affected, but the change can cause problems
  27484. for programs that want to detect whether the Menu button remains held
  27485. down. Luckily, there is a simple solution: the function
  27486. 6.3
  27487. INKEY(-11)
  27488. 6.3
  27489. will return the value TRUE however long the Menu button is held. (Hugh
  27490. Eagle)
  27491. 6.3
  27492. •   Getting Art Nouveau to run – Hands up those who remember Art Nouveau?
  27493. Well, this excellent old program has one quirk, namely that you have to
  27494. hold down the menu button while you move round the menu tree until you
  27495. make your selection. So, because of the changed functioning of the mouse
  27496. button (see above), it doesn’t work in RISC-OS 3.1 unless you make a
  27497. slight modification. In the Basic program called ArtNouveau from the
  27498. directory ANfiles at line 30950 in my version there is a line that
  27499. reads:
  27500. 6.3
  27501. WHILE stayopen AND mbut=2
  27502. 6.3
  27503. I have found that altering this to:
  27504. 6.3
  27505. WHILE stayopen AND INKEY-11
  27506. 6.3
  27507. restores the program to health. (Hugh Eagle)
  27508. 6.3
  27509. •   Using a TaskObey file to display a message – The new filetype
  27510. “TaskObey” is useful if you want the !Run file of an application to pop
  27511. up a message in a window without halting the whole system. You might use
  27512. this for instance to display a warning to change the setting of your
  27513. printer. Thus, to display “This is a message” in a window, create a file
  27514. called, say, Message containing:
  27515. 6.3
  27516. Echo This is a message
  27517. 6.3
  27518. set the filetype to TaskObey and include, in the application’s !Run
  27519. file, the line
  27520. 6.3
  27521. Filer_Run <Obey$Dir>.Message
  27522. 6.3
  27523. If you had set the filetype to Obey, the message would pop up moment
  27524. arily then disappear before the application loaded. (Hugh Eagle)
  27525. 6.3
  27526. •   Deskboot files and the Pinboard – The User Guide explains how to
  27527. create a !Boot file to boot the computer in your desired configuration.
  27528. It adds that, when saving the !Boot file, information to start up
  27529. applications produced before RISC-OS 3 is not saved automatically. To
  27530. get round this, it explains how to rename the !Boot file as Deskboot and
  27531. to incorporate it in a !Boot application. It goes on to explain how to
  27532. edit the Deskboot file, either to remove or to add lines as necessary.
  27533. 6.3
  27534. If you use the Pinboard as I do, some icons will be changed on a regular
  27535. basis. For example, I have regularly used files which change each month.
  27536. If the Deskboot file is saved each time the Pinboard is changed, a
  27537. certain amount of what the User Guide calls “hand editing” would have to
  27538. be done each time a change is made, to remove or add relevant
  27539. instructions.
  27540. 6.3
  27541. There is an easy solution. Set up your Desktop once and save the
  27542. Deskboot file. Then click <menu> over an empty space on the desktop and
  27543. save the Pinboard settings in the Pinboard file in your root directory.
  27544. Now drag your Deskboot file into !Edit (or Shift-double-click on it) and
  27545. delete all the lines which begin “Pin”. Alter the line “Pinboard” or
  27546. “Pinboard -Grid” to read “Run Pinboard” or “Run Pinboard -Grid”.
  27547. 6.3
  27548. Future changes to the Pinboard setting now need be saved only to the
  27549. Pinboard file in your root directory. (John Waddell)
  27550. 6.3
  27551. Ken Cowap warns that a DeskBoot file can easily be unnecessarily
  27552. cluttered if, for instance, there are a number of unwanted items on the
  27553. screen when it is made. This will incur a penalty in the time taken to
  27554. boot up − his started at two and a half minutes before he trimmed it
  27555. ruthlessly.
  27556. 6.3
  27557. •   ADFS buffers − According to Acorn’s telephone help line, the bug which
  27558. made it advisable to configure the adfs buffers to zero has been fixed!
  27559. (According to Computer Concepts, unless the buffers are configured to
  27560. zero, it is vital to dismount disks before removing them for good from
  27561. the machine, because otherwise there may be trouble later.) (Jochen
  27562. Konietzko)
  27563. 6.3
  27564. •   OS_Byte calls and the serial port – I use my A3000 for many purposes,
  27565. one of the more important being as a terminal to our mainframe computer.
  27566. The software for this I have written myself in Basic. After the upgrade,
  27567. my terminal program wouldn’t work. It would not accept characters from
  27568. the serial port. I tried using the serial port utility module supplied
  27569. with the upgrade, but this did not help.
  27570. 6.3
  27571. After a lot of experimenting, we finally discovered that if we changed
  27572. all the *FX calls for SYS “OS_Byte” calls, then the program would work.
  27573. It still puzzles me why two supposedly similar commands should give
  27574. different results! (S. J. Furnell)
  27575. 6.3
  27576. •   Z88 Filers – The Release Note says that the !Z88 filer supplied with
  27577. Pipedream requires interactive filing to be off. You’ll be pleased to
  27578. know that David Holden’s !Z88 filer (Careware 7) suffers from no such
  27579. problems. (Steve Hutchinson)
  27580. 6.3
  27581. •   Programs that call machine code from Basic – An application I used a
  27582. lot, !BPrint (Risc User) wouldn’t run with RISC-OS 3, and the cure for
  27583. this may well apply to other applications organised in a similar layout,
  27584. i.e. using a central Basic program calling a separate piece of machine
  27585. code. The cure was to re-assemble the code under RISC-OS 3; obviously
  27586. there is some small difference between its assembler and that of RISC-OS
  27587. 2. In this particular application, its “ancestor” (the program developed
  27588. over a period of time), a program called FileList from vol.2 issue 5 was
  27589. rerun to produce the assembled file BLIST which was substituted for the
  27590. original. (Ken Cowap)
  27591. 6.3
  27592. •   Mode number conflicts – A program for plotting Mandelbrot diagrams
  27593. failed with RISC-OS 3 and the manner of its failure may indicate a cure
  27594. for others. This particular program called a Mode 40 which didn’t exist
  27595. under RISC-OS 2 but which was specially designed and provided with the
  27596. program. RISC-OS 3 of course does have a native Mode 40 and a clash
  27597. between it and the “special” gave rise to the error report. The cure was
  27598. to rename the “special” to a mode number outside the range provided with
  27599. RISC-OS 3, in this case Mode 50. (Ken Cowap)
  27600. 6.3
  27601. •   Setting !Alarm options – This is a minor matter, unless you are trying
  27602. to set your own !Alarm display format in a !Boot file. This you do with
  27603. a Set Alarm$Options line (p136 App Guide). The quotes are omitted. This
  27604. is my (working) line:
  27605. 6.3
  27606. Set Alarm$Options -format “%z24:%mi %zdy.%zmn.%zyr”
  27607. 6.3
  27608. If you use a !Boot file and !Alarm, put it in to see my favourite
  27609. display format! (Steve Hutchinson)
  27610. 6.3
  27611. Miscellaneous comments
  27612. 6.3
  27613. •   Surely a ‘grown up’ operating system shouldn’t say, “Disc error 10 at
  27614. :0/00000000” when you try to read an unformatted disc?
  27615. 6.3
  27616. •   It seems strange that !Configure requires you to press <return> after
  27617. typing into a writable icon. This is not normal RISC-OS convention.
  27618. 6.3
  27619. •   It’s a shame that they didn’t manage to squeeze some suitable backdrop
  27620. sprites onto one of the RISC-OS 3 discs. Those who have access to
  27621. Windows 3 might like to know that its wallpaper bitmaps seem to work
  27622. very well on the RISC-OS 3 Pinboard, and it is very easy to transfer
  27623. them from an MS-DOS floppy, via !ChangeFSI (on the Support disc), into
  27624. sprite format on an Archimedes disc. The file called “leaves.bmp” makes
  27625. an excellent seasonal backdrop (I’m writing this in October!).
  27626. 6.3
  27627. Alt-key combinations
  27628. 6.3
  27629. The last couple of issues of Archive have contained lists of Alt-Key
  27630. combinations in RISC-OS 3.1. To complete the picture I would add:
  27631. 6.3
  27632. To get accents ( ´ ` ¨ ^ ° ¸ ) on their own, press the appropriate Alt-
  27633. key combination (e.g. Alt-[ for a ´ ) then the space bar.
  27634. 6.3
  27635. Alt-Spacebar gives a “hard space” or “non-breaking space” (the sort you
  27636. put between “NR2” and “2SD” if you don’t want Archive’s postcode
  27637. “NR2 2SD” to be split over two lines.)
  27638. 6.3
  27639. I have put a diagram of the keyboard showing the Alt-key combinations
  27640. below, and I hope that Paul will put the drawfile on the monthly program
  27641. disc.
  27642. 6.3
  27643. Incidentally, I am a bit puzzled about the character (code 173) that is
  27644. produced by the Alt-hyphen combination. What’s it for? I thought at
  27645. first that it was the “soft hyphen” that is described on page 109 of the
  27646. Impression 2 manual, but I now see that this is produced by Ctrl-hyphen
  27647. (this character – code 31 – is normally invisible but indicates a
  27648. preferred place for breaking a word with a hyphen at the end of a line;
  27649. it works even if the hyphenation module is not present). By contrast,
  27650. character 173 is, so far as I can see, always visible (as a hyphen if
  27651. the font follows the Acorn standard) but its effect is to prevent a word
  27652. into which it is inserted ever being broken over the end of a line even
  27653. if hyphenation is switched on. Am I correct in describing it as a “hard
  27654. hyphen”? (Well, I can think of one application. Suppose you want to use
  27655. a word like “pray­ers” where you deliberately hyphenate the word to
  27656. refer to the people doing the praying. In that case, if it were an
  27657. ordinary hyphen, the word might get split at the end of a line. Using a
  27658. ‘hard hyphen’ avoids the split. Ed)
  27659. 6.3
  27660. The upgrade again
  27661. 6.3
  27662. Finally, I thought it would be good to take a slightly light-hearted
  27663. look at the subject as we hear the experiences that Rob Wears had in
  27664. fitting and using RISC-OS 3 on an A310...
  27665. 6.3
  27666. I finally managed to get my grubby mitts on the RISC-OS 3 upgrade at the
  27667. Acorn User show, and arrived back home with that odd mixture of terror
  27668. and excitement that comes from having to take the lid off the machine.
  27669. I’ve fitted one or two things in the past, like the soldered 4MByte RAM
  27670. upgrade, but no matter how many times I do it, it’s still a bit like
  27671. performing neurosurgery on a close friend. Will Archie pull through,
  27672. Doc? Actually, fitting was a lot easier than I’d thought. I used the
  27673. IFEL carrier board, as their memory upgrade has proven so reliable. My
  27674. only source of concern was the discrepancy between their fitting
  27675. instructions and the ones supplied by Acorn which alluded to changing
  27676. links on the mother board. I followed the IFEL guidelines, which had the
  27677. link changes on their board, and waited anxiously for the machine to
  27678. explode when I switched it on. No problem, apart from the fact that I
  27679. bypassed the desktop and ended up at the command line. Still, the
  27680. desktop was easily accessible with a simple “*” command.
  27681. 6.3
  27682. The hard drive icon was where it should be (and no longer jumped around
  27683. when I mounted or dismounted the disc!) and I am pleased to say that I
  27684. encountered no problems with the Oak SCSI board (version 1.16 of SCSI
  27685. driver).
  27686. 6.3
  27687. I couldn’t resist the urge to delve into the Apps directory, and here I
  27688. encountered my first problem. Initially, I couldn’t get !Edit to load
  27689. from Apps and was greeted with the wonderfully informative message ‘File
  27690. “Basic” not found’. Fighting the sudden tide of panic (“It wouldn’t work
  27691. at all if the ROM legs were snapped off, idiot!”) I checked the module
  27692. list via the command line and found that I was apparently the lucky
  27693. owner of the one set of chips which Acorn had shipped without putting
  27694. Basic on board first. I was about to fall on my soldering iron in
  27695. despair when I thought of checking the status of the system modules
  27696. using *ROMModules and found that the Basic module was unplugged. I
  27697. reinitialised the module, and !Edit worked fine. There, that wasn’t too
  27698. bad − the hair will probably grow back and nobody will notice the
  27699. teethmarks on the manual....
  27700. 6.3
  27701. Incidentally, the ARM3Support module was also unplugged and therefore
  27702. the *Cache command wouldn’t work, but I’d got the hang of things by now,
  27703. and pressed on happily. I t